文章分類/Infragistics
本教程將向您展示如何使用UltraTimelineView。
概述
UltraTimelineView是一個日程控件。通過設置時間的水平“時隙”來表示日期和時間。“所有者”垂直顯示。約會必須至少有一個所有者和時間範圍。如果您不設置所有者,則默認使用“無”。
下面的示例創建一個 UltraTimelineView 並添加所有者和時間表。
也適用樣式。
創建步驟
1. 創建一個新的 Windows 窗體應用程序。
2. 雙擊工具箱中的UltraTimelineView 將其添加到您的項目中。調整控件和表單的大小。
3. 雙擊工具箱中的 UltraCalendarInfo 控件,將其添加到窗體中。
控件出現在窗體下方的區域中。沒有視覺表示,因此運行應用程序時您不會看到它。默認名稱為“UltraCalendarInfo1”,但您可以更改該名稱。本示例使用默認名稱。
4. 保存項目。
5. 從菜單中選擇查看→代碼。將顯示 Form1.cs。
6. 創建InitializeCalendar() 方法。
將三個所有者添加到 UltraCalendarInfo。在 Form1() 方法中,調用 InitializeCalendar()。
public Form1() { InitializeComponent(); InitializeCalendar(); } public void InitializeCalendar() { // オーナーを追加する this.ultraCalendarInfo1.Owners.Add("山本"); this.ultraCalendarInfo1.Owners.Add("本田"); this.ultraCalendarInfo1.Owners.Add("小谷"); }
7. 將UltraCalendarInfo 設置為UltraTimelineView。
通過此配置,UltraTimelineView 從 UltraCalendarInfo 檢索信息。在“設計”視圖中選擇“UltraTimelineView”,然後在“屬性”窗口中將“CalendarInfo”屬性設置為“UltraCalendarInfo1”。如果“屬性”窗口不可見,請選擇“視圖”>“屬性窗口”。或者您可以在 Form1.cs 的 InitializeCalendar() 方法中添加以下代碼。
從屬性設置時
用代碼設置時
this.ultraTimeLineView1.CalendarInfo = ultraCalendarInfo1;
8. 保存並運行項目。
我可以看到山本先生,但看不到本田先生和小谷先生。向下滾動查看其他所有者。
要在不滾動的情況下查看所有所有者,請減小行高。降低行高會增加可見所有者的數量。要減小行高,請向上拖動所有者之間的線。
它看起來像這樣。
現在所有所有者都可見。顯示為“無”的所有者是“未分配的所有者”。該行顯示適用於每個所有者的活動。例如,在此行顯示假期或公司會議。如果您想隱藏“無”所有者,請使用以下代碼。
this.ultraCalendarInfo1.Owners.UnassignedOwner.Visible = false;
9. 引入時間間隔。
UltraTimelineView上方有一個“時間段”。表示預約時間。默認情況下,它分為 15 分鐘的“間隔”。如果您的應用程序顯示假期,您可以通過設置 PrimaryInterval 來更改間隔。您可以在設計視圖中設置 PrimaryInterval。單擊“屬性”窗口中 PrimaryInterval 屬性旁邊的省略號 (…)。
您可以通過選擇 PrimaryInterval 窗口上方的單位來設置屬性網格中顯示的單位。
例如,如果將 PrimaryInterval 設置為 1 天,則間隔將為每 1 天。這對於顯示假期、項目摘要等很有用。
在此示例中,我們將其設置為 1 天。在設計器中設置很容易。
如果要在代碼中設置 PrimaryInterval,請將以下代碼插入到 InitializeCalendar 方法中。參數定義間隔單位(第二個參數)及其數量(第一個參數)。此外,請注意,您需要在 Form1.cs 頁面上方添加命名空間“using Infragistics.Win.UltraWinSchedule;”。
DateInterval dayInterval = new DateInterval(1, DateIntervalUnits.Days);
this.ultraTimeLineView1.PrimaryInterval = dayInterval;
10. 同樣,您可以設置AdditionalIntervals。
時間間隔根據 PrimaryInterval 顯示,但您可以根據 AnotherInterval 對間隔進行分組。添加另一行列標題。例如,如果 PrimaryInterval 設置為 1 天,您可以添加 1 週的 AnotherInterval。在此示例中添加 1 週的 ExtraInterval。您可以在屬性窗口中單擊“Omit AnotherIntervals”,並以與“PrimaryInterval”相同的方式進行設置。
當你運行它時,它會顯示如下。
11. 這裡介紹一下日程安排。
UltraTimelineView 通常使用數據綁定。有關詳細信息,請參閱聯機幫助中有關數據綁定的主題。在此示例中,我們將添加一個簡單的約會。
確保所有者被列為“無”。如果不可見,請註釋掉步驟 8 中的代碼(通過在代碼前添加“//”)。
使用以下代碼創建一個新約會。將其添加到 InitializeCalendar 方法中。請注意,您還需要在 Form1.cs 頁面上方添加命名空間“using Infragistics.Win.UltraWinSchedule;”。
// 新しい予定を作成する Appointment companyAnniversary = new Appointment( new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0), new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day + 1, 0, 0, 0));
上面的代碼創建了一個名為“companyAnniversary”的事件。該約會定為今天全天。這樣,當您運行應用程序時,它將始終可見。
12. 設置約會主題並將其添加到UltraCalendarInfo 的約會列表中。
// 予定の件名を設定する companyAnniversary.Subject = "会社の記念日"; // 予定を
UltraCalendarInfo に追加する ultraCalendarInfo1.Appointments.Add(companyAnniversary);
13. 保存並運行項目。
14. 要將事件設置為指定所有者,請將事件的 Owner 屬性設置為 UltraCalendarInfo 中定義的所有者。
例如,下面的代碼設置了 Yamamoto 先生的休息時間。
//山本さんの休み時間を設定する Appointment vacation1 = new Appointment( new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day + 1, 0, 0, 0), new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day + 6, 0, 0, 0)); // 予定の件名を設定する vacation1.Subject = "休み時間"; // 予定を山本さんに設定する vacation1.Owner = UltraCalendarInfo1.Owners["山本"]; // 予定を UltraCalendarInfo に追加する ultraCalendarInfo1.Appointments.Add(vacation1);
15. 雙擊“設計”視圖工具箱中的“UltraCalendarLook”以設置其樣式。
16. 設置UltraCalendarLook 對象的ViewStyle 屬性。
可以在設計視圖中使用 UltraCalendarLook 智能標記進行設置。
請注意,如果要在代碼中配置它,則需要命名空間“using Infragistics.Win.UltraWinSchedule;”。
// スタイルを設定する ultraCalendarLook1.ViewStyle = ViewStyle.Office2007;
18. 保存並運行項目。