"/>

VB.net2008打造精美电子日历程序

来源:中国IT实验室时间:2011-06-28

  Visual Studio2008发布后,迅速吸引了大量的VB.NET爱好者。Visual Studio2008以优化性和强大的功能而著称,所以一时间同样也吸引了大量的专业编程人员。经过人们几个月的试用后,可以发现使用者普遍对这个新版本的Visual Studio感到满意。当然Visual Studio2008最为突出的特点是快捷而更具有人性化了。如今的Visual Studio2008的控件应用仍然相当重要而且很实用。今天我将要介绍几个比较常用的控件和它们的相关属性,通过一个实例让大家详细的了解程序的基本开发过程与控件使用技巧。本文适合VB.net初学者和具备一定基础的VB.net使用者,读者将在本文学习到GroupBox、 DateTimePicker、ComboBox、Textbox、Label、MonthCalendar、CheckBox等控件的使用,以及对于 Windows窗体设计器的操作和方法的简单介绍。
  打开 Visual Studio 2008。在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 Windows 应用程序(Windows Application)。单击确定 (OK)。
  在Form1窗体靠右侧中添加GroupBox1,GroupBox2控件(注意:GroupBox2创建在GroupBox1上)。其中GroupBox1的Text为: 时间日期,GroupBox2的Text为:选项。如图1所示

VB.net2008打造精美电子日历程序

  完成后,我们需要在GroupBox1中添加DateTimePicker1控件。
  DateTimePicker控件详细属性解释:  
  DateTimePicker控件属性:  
  CalendarFont 获取或设置应用于日历的字体样式。
  CalendarForeColor 获取或设置日历的前景色。
  CalendarmonthBackground 获取或设置历月的背景色。
  CalendarTitleBackColor 获取或设置日历标题的背景色。
  CalendarTitleForeColor 获取或设置日历标题的前景色。
  CalendarTrailingForeColor 获取或设置日历结尾日期的前景色。
  CanFocus 获取一个值,该值指示控件是否可以接收焦点。 (从 Control 继承。) CanSelect 获取一个值,该值指示是否可以选中控件。 (从 Control 继承。)
  Capture 获取或设置一个值,该值指示控件是否已捕获鼠标。 (从 Control 继承。) CausesValidation 获取或设置一个值,该值指示控件是否会引起在任何需要在接收焦点时执行验证的控件上执行验证。 (从 Control 继承。)
  Checked 获取或设置一个值,该值指示是否已用有效日期/时间值设置了 Value 属性且显示的值可以更新。
  CheckForIllegalCrossThreadCalls 获取或设置一个值,该值指示是否捕获对错误线程的调用,这些调用访问控件的 Handle 属性。 (从 Control 继承。)
  ClientRectangle 获取表示控件的工作区的矩形。 (从 Control 继承。)
  ClientSize 获取或设置控件的工作区的高度和宽度。 (从 Control 继承。)
  CompanyName 获取包含控件的应用程序的公司名称或创建者。 (从 Control 继承。) Container 获取 IContainer,它包含 Component。 (从 Component 继承。)
  ContainsFocus 获取一个值,该值指示控件或它的一个子控件当前是否有输入焦点。(从 Control 继承。)
  ContextMenu 获取或设置与控件关联的快捷菜单。 (从 Control 继承。)
  ContextMenuStrip 获取或设置与此控件关联的 ContextMenuStrip。 (从 Control 继承。)
  Controls 获取包含在控件内的控件的集合。 (从 Control 继承。)
  Created 获取一个值,该值指示控件是否已经创建。 (从 Control 继承。)
  Cursor 获取或设置当鼠标指针位于控件上时显示的光标。 (从 Control 继承。)
  CustomFormat 获取或设置自定义日期/时间格式字符串。
  DataBindings 为该控件获取数据绑定。 (从 Control 继承。)
  DefaultBackColor 获取控件的默认背景色。 (从 Control 继承。)
  DefaultFont 获取控件的默认字体。 (从 Control 继承。)
  DefaultForeColor 获取控件的默认前景色。 (从 Control 继承。)   
  在GroupBox2中添加3个Label控件. 属性Text分别设置如下:
  Label1 Text:Time
  Label2 Text:日期风格
  Label3 Text:日期格式
  设置完成后,效果如图2
  

  

用VB.net2008编写精美电子日历

  设置后,我们还需要在GroupBox2中添加2个ComboBox1与ComboBox2控件,

  以及一Textbox1控件。如图3

用VB.net2008编写精美电子日历

  Form1窗体中右侧界面工作完成了。接着我们需要完成Form1左侧界面了(也是我们最重要的显示日期日历的界面)

  在Form1窗体左侧添加MonthCalendar1控件,效果如图4

用VB.net2008编写精美电子日历

  MonthCalendar1的控件的详细属性:  
  MonthCalendar1属性:  
  Margin 获取或设置控件之间的空间。 (从 Control 继承。)
  MaxDate 获取或设置允许的最大日期。
  MaximumSize 获取或设置大小,该大小是 GetPreferredSize 可以指定的上限。 (从Control 继承。)
    MaxSelectionCount 获取或设置月历控件中可选择的最大天数。
  MinDate 获取或设置允许的最小日期。
  MinimumSize 获取或设置大小,该大小是 GetPreferredSize 可以指定的下限。 (从Control 继承。)
  ModifierKeys 获取一个值,该值指示哪一个修改键(Shift、Ctrl 和 Alt)处于按下的状态。 (从 Control 继承。)
  MonthlyBoldedDates 获取或设置 DateTime 对象的数组,确定每月要用粗体显示的日期。
  MouseButtons 获取一个值,该值指示哪一个鼠标按钮处于按下的状态。 (从Control 继承。)
  MousePosition 获取鼠标光标的位置(以屏幕坐标表示)。 (从 Control 继承。) Name 获取或设置控件的名称。 (从 Control 继承。)
  Padding 获取或设置 MonthCalendar 控件的边缘与该控件的内容之间的空间。
    Parent 获取或设置控件的父容器。 (从 Control 继承。)
    PreferredSize 获取可以容纳控件的矩形区域的大小。

  (从 Control 继承。)
  ProductName 获取包含控件的程序集的产品名称。 (从 Control 继承。)
  ProductVersion 获取包含控件的程序集的版本。 (从 Control 继承。)
  RecreatingHandle 获取一个值,该值指示控件当前是否在重新创建其句柄。 (从Control 继承。)
  Region 获取或设置与控件关联的窗口区域。 (从 Control 继承。)
  Right 获取控件右边缘与其容器的工作区左边缘之间的距离(以像素为单位)。 (从Control 继承。)
  RightToLeft 获取或设置一个值,该值指示是否将控件的元素对齐以支持使用从右向左的字体的区域设置。 (从 Control 继承。)
  RightToLeftLayout 获取或设置一个值,该值指示控件是否从右到左布局。
  ScrollChange 获取或设置月历控件的滚动率。
  SelectionEnd 获取或设置选定日期范围的结束日期。
  SelectionRange 为月历控件获取或设置选定的日期范围。
  SelectionStart 获取或设置所选日期范围的开始日期。
  ShowToday 获取或设置一个值,该值指示控件底端是否显示 TodayDate 属性表示的日期。
  ShowTodayCircle 获取或设置一个值,它指示是否用圆形或用正方形标识当天日期。 ShowWeekNumbers 获取或设置一个值,该值指示月历控件是否在每行日期的左侧显示周数 (1-52)。
  SingleMonthSize 获取显示一个日历月所需的最小大小。
  Site 获取或设置控件的站点。 (从 Control 继承。)
  Size 获取或设置 MonthCalendar 控件的大小。
  TabIndex 获取或设置在控件的容器的控件的 Tab 键顺序。 (从 Control 继承。) TabStop 获取或设置一个值,该值指示用户能否使用 Tab 键将焦点放到该控件上。(从 Control 继承。)
  Tag 获取或设置包含有关控件的数据的对象。 (从 Control 继承。)
  Text 已重写。 获取或设置要在 MonthCalendar 上显示的文本。
  TitleBackColor 获取或设置指示日历标题区的背景色的值。
  TitleForeColor 获取或设置指示日历标题区的前景色的值。
  TodayDate 获取或设置由 MonthCalendar 用作今天的日期的值。
  TodayDateSet 获取指示是否已显式设置 TodayDate 属性的值。
  Top 获取或设置控件上边缘与其容器的工作区上边缘之间的距离(以像素为单位)。(从 Control 继承。)
  TopLevelControl 获取没有另一个 Windows 窗体控件作为其父级的父控件。通常,这是控件所在的最外面的 Form。 (从 Control 继承。)
  TrailingForeColor 获取或设置一个值,该值指示控件中没有完全显示的月中日期的颜色。
  UseWaitCursor 获取或设置一个值,该值指示是否将等待光标用于当前控件以及所有子控件。   
   在Form1中左侧添加一个CheckBox1控件Text属性设置为:展示今天的日期。再在CheckBox1控件下部添加一个Button控件Text属性设置为:Exit 

 
  最终效果如图5

用VB.net2008编写精美电子日历


  基本上我们的界面工作完成了。接下来我们该输入代码了,详细过程如下:
  双击Form1窗体进入Form1_Load事件中
   代码如下:
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Me.ComboBox1.Items.Add("long")
  Me.ComboBox1.Items.Add("short")
  Me.ComboBox1.Items.Add("timedate")
  Me.ComboBox1.Items.Add("custom1")
  Me.ComboBox1.Items.Add("custom2")
  Me.ComboBox1.Items.Add("custom3")
  Me.ComboBox1.Items.Add("custom4")
  '添加日期显示格式
  Me.ComboBox2.Items.Add("下拉菜单式")
  Me.ComboBox2.Items.Add("点击/选择式")  
  '添加起始星期
  Me.ComboBox1.SelectedIndex = 0
  Me.ComboBox2.SelectedIndex = 0  
  Me.TextBox1.Text = TimeOfDay
  End Sub  
  进入ComboBox1_SelectedIndexChanged事件中
  代码如下:
  Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
  Select Case Me.ComboBox1.SelectedIndex
  Case 0
  Me.DateTimePicker1.Format = DateTimePickerFormat.Long
  Case 1
  Me.DateTimePicker1.Format = DateTimePickerFormat.Short
  Case 2
  Me.DateTimePicker1.Format = DateTimePickerFormat.Time
  Case 3
  Me.DateTimePicker1.Format = DateTimePickerFormat.Custom 'd表示一位

  或两位的天数
  Me.DateTimePicker1.CustomFormat = "MMM dd,yyy - ddd" 'dd表示两位数的天数,
  Case 4
  Me.DateTimePicker1.Format = DateTimePickerFormat.Custom
  Me.DateTimePicker1.CustomFormat = "ddd,hh:mm:ss,tt" '星期几名称
  Case 5  
  Me.DateTimePicker1.Format = DateTimePickerFormat.Custom Me.DateTimePicker1.CustomFormat = "dddd,HH:mm:ss,tt"
  Case 6
  Me.DateTimePicker1.Format = DateTimePickerFormat.Custom Me.DateTimePicker1.CustomFormat = "dddd,HH:m:ss,t"  
  End Select
  Me.TextBox1.Text = TimeOfDay  
  End Sub  
  进入ComboBox2_SelectedIndexChanged事件中
  代码如下:
  Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
  Select Case Me.ComboBox2.SelectedIndex
  Case 0
  Me.DateTimePicker1.ShowUpDown = False
  Case 1
  Me.DateTimePicker1.ShowUpDown = True  
  End Select
  Me.TextBox1.Text = TimeOfDay  
  End Sub  
  进入CheckBox1_CheckStateChanged事件中
  代码如下:
  Private Sub CheckBox1_CheckStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckStateChanged
  If Me.CheckBox1.Checked Then
  Me.MonthCalendar1.ShowToday = True
  '显示今天日期
  Else
  Me.MonthCalendar1.ShowToday = False
  
  End If
  End Sub  
  进入Button1_Click事件中
  代码如下:  
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  End  
  End Sub  
  好了代码输入完毕。在这里补充说明:如果我们平时编写程序时输入完代码以后,

  在代码视图中出现了Windows窗体设计器,有很多初学者不知道是什么。实际上Windows窗体设计器里面是系统自动生成代码,这里面的代码更加详细。有兴趣的朋友可看一看。具体打开Windows窗体设计器步骤如下,因为在平时Windows窗体设计器是隐藏的。 
  详细的操作过程如下:
  1. 先选择<解决方案资源管理器>在上面有我们可以看到一些小图标,选中第2个图标(显示所有文件)如图6

用VB.net2008编写精美电子日历

  这个时候我们可以看到之前所没有显示的文件了,单击Form1.vb的节点,

用VB.net2008编写精美电子日历   
  看到了吗?就是这个文件Form1.Designer.vb  
  双击打开它可以看到如图8所示的代码视图,这就是Windows窗体设计器了

用VB.net2008编写精美电子日历

  
  好了,我们的所有要做的工作已经完成了,最后我们来测试一下程序吧,最终程序界面如下

用VB.net2008编写精美电子日历

  在这个程序中,我们可以任意的选择多个复选框来选择一些样式。当然我们还可以增加更多的功能打造一个个性化的电子日历程序。

意见反馈
发表评论

最新评论(共1条)

2345市网友

点击右边的变换日期,左边那个日历不会随着变换啊?

2012-03-26 0

回复@2345网友:

  • 取消