除了可以在运行时读取这些属性外,还可以在运行时设置这些属性,这些设置将对当前选中的日期产生不同的影响。例如,改变 DayOfWeek 属性值将选中同一周中相应的那一天。这又会改变 Day 属性的值,但根据这一周在一月中的位置,Month 属性值也可能会被修改。改变 Year 属性的值将选中指定年中的当前日期,这也可能影响 DayOfWeek 的值。
在改变 Week 属性值时尤其应该注意。将不同的周设置为当前周将不改变 DayOfWeek 的值,但可能会影响到 Day 的值,进而可能影响到 Week、Month 甚至 Year 属性的值。例如,如果用户选择了Friday,并将Week值设置成了一年中的以Wednesday结束的第52周,那么 Week 的值将变成 1,而 Month 和 Year 的值也将改变,第1周和第52周一般是重叠的。
Private Sub MonthView1_GetDayBold(ByVal StartDate As Date, ByVal Count As Integer, State() As Boolean)
Dim i As Integer
i = vbSunday
While i < Count
State(i - MonthView1.StartOfWeek) = True
i = i + 7
Wend
End Sub
键盘接口
MonthView 控件可以通过键盘操作。下表描述了运行时对控件可以执行的不同操作。
键 描述
LEFT ARROW 选择下一天
RIGHT ARROW 选择前一天
UP ARROW 选择上一周中的同一天
DOWN ARROW 选择下一周中的同一天
PAGE UP 滚动显示上个月。
PAGE DOWN 滚动显示下个月。
CTRL+PAGE UP 滚动显示前一年。
CTRL+PAGE DOWN 滚动显示下一年。