vb.net入门——MonthCalendar 控件的使用


上一篇我们了解了vb.net入门——DateTimePicker 控件的使用,在vb.net中还有另外一个用于日期设置的控件——MonthCalendar 控件(日历控件)。

MonthCalendar 控件在vb.net的工具箱中图标如下图一所示:

一、更改 MonthCalendar 控件的外观

MonthCalendar 控件允许我们使用配色、选择显示或隐藏周数和当前日期等多种方法来自定义它的外观。

1、显示周数

在“属性”窗口将 ShowWeekNumbers 属性设置为 true。

或者使用代码设置该属性,如下:

MonthCalendar1.ShowWeekNumbers = True

设置完毕后,周数以单独的列出现在一周的第一天的左边,如下图二所示:

2、在控件底部显示当前日期

将 ShowToday 属性设置为 true 则在控件的底部显示当天日期,设置为False则不显示。同时我们可以通过 TodayDateSet 属性获取 ShowToday 属性显示设置的值

而 ShowTodayCircle 属性用于指示是否在今天的日期上加一个红色的圆圈。

我们在窗体上添加一个 MonthCalendar 控件,两个Button 按钮,然后加入如下代码:

'使用Button1 控件来控制在月历控件底部 显示\不显示 当天日期。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MonthCalendar1.ShowToday = Not MonthCalendar1.ShowToday

MessageBox.Show(MonthCalendar1.TodayDateSet.ToString)

End Sub

'使用Button2 控件来控制在是否为当天日期加上红色圆圈。

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

MonthCalendar1.ShowTodayCircle = Not MonthCalendar1.ShowTodayCircle

End Sub

运行程序,分别单击两个按钮,观察设置效果。

我们可以通过 TodayDate 属性表示今天的日期,默认值是当前系统日期,当然我们在必要的时候也可以对它进行重新赋值
3、更改月历的颜色

MonthCalendar 控件提供了 Font、ForoColor、 TitleBackColor、TitleForeColor 和 TrailingForeColor 等属性,用于设置它的外观颜色。

Font 属性和 ForoColor 属性用于确定控件内部文字的字体大小与文字的颜色,也就是月历中每个日期数字的字体与颜色。

TitleBackColor 属性确定日历标题区的背景的颜色,同时它也确定周一到周日的字体颜色。

TitleForeColor 属性确定日历标题区的前景色即标题的颜色。

TrailingForeColor 属性确定所显示的月份之前和之后的日期(即非本月日期)的颜色。

如下代码设置月历的颜色,运行后效果如图三所示:

MonthCalendar1.TitleBackColor = System.Drawing.Color.Blue

MonthCalendar1.TrailingForeColor = System.Drawing.Color.Red

MonthCalendar1.TitleForeColor = System.Drawing.Color.Yellow

4、设置一周中的第一天

默认情况下,一周开始的第一天都是从星期日开始,如图三所示,我们也可以使用 FirstDayOfWeek 属性来改变一周开始的第一天,FirstDayOfWeek 属性默认值为 Default。

这里我们设置一周开始的第一天是星期一,可以在“属性”窗口中设置 FirstDayOfWeek 属性为 Monday,或者在代码中设置,代码如下:

MonthCalendar1.FirstDayOfWeek = Day.Monday

设置后效果如下图四所示:

5、在 MonthCalendar 控件中显示多个月份

MonthCalendar 控件同时可以显示最多十二个月。默认情况下,控件只显示一个月。我们还可以指定显示多少个月以及它们在控件中的排列方式。当更改日历尺寸时,控件大小将调整;因此应确保窗体上有足够的空间供新尺寸使用。

1)、在属性窗口中将 CalendarDimensions 属性设置为要水平和垂直显示的月份数,这里我们设置为水平显示3个,垂直显示2个。

2)、或者在装载的过程中使用以下代码:

MonthCalendar1.CalendarDimensions = New System.Drawing.Size (3,2)

设置效果如下图五所示:

二、在 MonthCalendar 控件中以粗体显示特定日子

MonthCalendar 控件能以粗体显示特殊的日子,可以引起用户对特殊日期(如假日和周末)的注意。

BoldedDates 属性确定要以粗体显示的非周期性日期。

AnnuallyBoldedDates 属性包含每年以粗体显示的日期。

MonthlyBoldedDates 属性包含每月以粗体显示的日期。

这三个属性中的每一个都包含一个 DateTime 对象数组。若要从这些列表中的某一个添加或移除日期,必须添加或移除 DateTime 对象。

1、在属性窗口中设置 DateTime 对象数组

选择要添加特殊日期的属性,然后单击属性后的符号,弹出“DateTime 集合编辑器”窗口,然后使用“添加”或者“移除”按钮来编辑。对于新添加的 DateTime 对象,需要在其右边的“Value”属性中设置其对应的日期。

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3