Calendar 控件位于 MSACAL70.OCX 中(在 \WINDOWS\SYSTEM 目錄中; 在幫助文件中錯誤的描述為 MSACAL.OCX)。幫助文件名為 MSACAL70.HLP。該控件提供了在你的應用程序中包含日歷的能力。該控件的一個顯而易見的用處是當用戶在日期型字段上右擊鼠標時顯示一個日歷讓用戶選擇一個日期值。
方法和事件
Calendar 控件中的方法主要用于編程地控制日期,包括 NextDay,NextWeek,NextMonth,PreviousDay,PreviousWeek 和 PreviousMonth。當然也可以提供按鈕或其它方法來調(diào)用這些方法,但由于用戶可以在日歷中單擊各種控件來修改日期,所以我沒有在這方面作過多的探索。
除 Click,DblClick 和 KeyPress 這樣的常用事件,Calendar 控件還有 AfterUpdate,BeforeUpdate,NewMonth 和 NewYear 事件,這些事件允許你在用戶改變了某些東西后,執(zhí)行一些可能需要的特殊的處理。我想你會用到的最常用的事件是 DblClick,該事件可用于當用戶選擇了一個日期后,釋放或隱藏 Calendar 控件.
屬性
Calendar 控件的屬性比它的方法和事件更有趣。你可能想設置一些屬性,如顏色(BackColor,DayFontColor,GridFontColor,GridLinesColor,TitleFontColor),字體 (DayFont,GridFont,and TitleFont),和控件的其它初始顯示屬性(DayLength,F(xiàn)irstDay,GridCellEffect,MonthLength,ShowDateSelectors,ShowDays,ShowHorizontalGrid,ShowTitle,and ShowVerticalGrid),這些屬性可以通過右擊菜單從 Calendar 控件屬性表中進行訪問。Value 屬性包含在日歷控件中選定的日期,Day,Month 和 Year 屬性包含日期的相關部分的值。
通常,你會設置控件的 Value 來指定一個日期(例如,在控件的 Init 事件中),該日期是被高亮顯示的默認日期,在用戶選定一個日期后,可以從 Value 中讀取用戶選擇的日期值。
示例
我創(chuàng)建了一個包含日歷控件和一些按鈕的容器類(源代碼中的 ACTIVEX.VCX 類庫中的 SFCalendaron 類) 和一個 SFDateSpinner 類(源代碼中的 CONTROLS.VCX 類庫中) ,適用于在用戶從右擊菜單選擇"日歷"時實例化 SFCalendar。
SFDateSpinner 類是一個容器類,擁有一個文本框和數(shù)碼器(只有上下鍵頭是可訪問的)。數(shù)碼器用于增加和減少文本框中的日期值,文本框的 KeyPress 方法中的代碼模仿快速填充日期按鍵。當用戶在文本框上右擊時,調(diào)用 ShortcutMenu 方法來顯示一個快捷菜單(采用硬編碼并封閉于控件的該方法中)。如果用戶從菜單中選擇了 "日歷",會調(diào)用 ShowCalendar 方法。該方法從 cCalendarClass 屬性(該屬性的默認值是 SFCalendar )是指定的類中,實例化一個對象。NEWOBJ.PRG 用于確保存該類所在的類庫是打開的。
SFCalendar 控件接收一個對象參數(shù),因此它可以在對象釋放前修改對象的值為用戶選擇值。當用戶雙擊一個日期或選擇 保存 或 退出 按鈕時,該對象被釋放。
方法和事件
Calendar 控件中的方法主要用于編程地控制日期,包括 NextDay,NextWeek,NextMonth,PreviousDay,PreviousWeek 和 PreviousMonth。當然也可以提供按鈕或其它方法來調(diào)用這些方法,但由于用戶可以在日歷中單擊各種控件來修改日期,所以我沒有在這方面作過多的探索。
除 Click,DblClick 和 KeyPress 這樣的常用事件,Calendar 控件還有 AfterUpdate,BeforeUpdate,NewMonth 和 NewYear 事件,這些事件允許你在用戶改變了某些東西后,執(zhí)行一些可能需要的特殊的處理。我想你會用到的最常用的事件是 DblClick,該事件可用于當用戶選擇了一個日期后,釋放或隱藏 Calendar 控件.
屬性
Calendar 控件的屬性比它的方法和事件更有趣。你可能想設置一些屬性,如顏色(BackColor,DayFontColor,GridFontColor,GridLinesColor,TitleFontColor),字體 (DayFont,GridFont,and TitleFont),和控件的其它初始顯示屬性(DayLength,F(xiàn)irstDay,GridCellEffect,MonthLength,ShowDateSelectors,ShowDays,ShowHorizontalGrid,ShowTitle,and ShowVerticalGrid),這些屬性可以通過右擊菜單從 Calendar 控件屬性表中進行訪問。Value 屬性包含在日歷控件中選定的日期,Day,Month 和 Year 屬性包含日期的相關部分的值。
通常,你會設置控件的 Value 來指定一個日期(例如,在控件的 Init 事件中),該日期是被高亮顯示的默認日期,在用戶選定一個日期后,可以從 Value 中讀取用戶選擇的日期值。
示例
我創(chuàng)建了一個包含日歷控件和一些按鈕的容器類(源代碼中的 ACTIVEX.VCX 類庫中的 SFCalendaron 類) 和一個 SFDateSpinner 類(源代碼中的 CONTROLS.VCX 類庫中) ,適用于在用戶從右擊菜單選擇"日歷"時實例化 SFCalendar。
SFDateSpinner 類是一個容器類,擁有一個文本框和數(shù)碼器(只有上下鍵頭是可訪問的)。數(shù)碼器用于增加和減少文本框中的日期值,文本框的 KeyPress 方法中的代碼模仿快速填充日期按鍵。當用戶在文本框上右擊時,調(diào)用 ShortcutMenu 方法來顯示一個快捷菜單(采用硬編碼并封閉于控件的該方法中)。如果用戶從菜單中選擇了 "日歷",會調(diào)用 ShowCalendar 方法。該方法從 cCalendarClass 屬性(該屬性的默認值是 SFCalendar )是指定的類中,實例化一個對象。NEWOBJ.PRG 用于確保存該類所在的類庫是打開的。
SFCalendar 控件接收一個對象參數(shù),因此它可以在對象釋放前修改對象的值為用戶選擇值。當用戶雙擊一個日期或選擇 保存 或 退出 按鈕時,該對象被釋放。