65.9K
CodeProject 正在变化。 阅读更多。
Home

复合日期和时间控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.40/5 (11投票s)

2007年4月11日

CPOL

2分钟阅读

viewsIcon

71505

downloadIcon

1661

显示日期和时间的控件。

Screenshot - CompositeDateTime_pic.jpg

引言

此控件显示组合的日期和时间,带有日历下拉菜单和上下箭头。它基本上是将两个日期选择器控件使用SplitContainer合并在一起。分割条可以调整,以为两侧提供更多空间。

这是我第一次尝试制作这样的控件,所以如果还有其他方法,我很乐意接受建议。

背景

日期选择器控件可以仅显示日期或时间值。我目前在我们的MFC应用程序中使用一个组合的日期/时间控件 (BCGDateTime)。当我迁移到VS 2005时,我找不到为.NET编写的类似控件,所以就着手做了这个。

添加控件

使用“添加引用”来在您的项目中添加对DateAndTimeControls程序集的引用。

通过右键单击某个类别并在工具箱中选择“选择项”来将控件添加到工具箱。

Screenshot - choose_item.jpg

将控件拖动到窗体上。属性面板显示新的属性和事件

  • DateTimeValue - 控件的默认属性。
  • DateValue - 控件的仅日期值
  • TimeValue - 控件的仅时间值
  • MinDate - 控件的最小日期/时间值
  • MaxDate - 控件的最大日期/时间值
  • DateFormat - 枚举的日期选择器格式值(例如,长格式)
  • DateCustom - 自定义格式掩码(例如,dd-MMM-yyyy)
  • TimeFormat - 枚举的日期选择器格式值(例如,时间)
  • TimeCustom - 自定义格式掩码(例如,hh:mi tt)
  • ValueChanged - 控件的默认事件。当值发生变化时触发。

使用控件

从控件获取值

dim dt as Date
dt = DateTimeControl1.DateTimeValue
tTextbox1.Text = dt.ToString("dd-mmm-yyyy hh:mi tt")

将值放入控件

DateTimeControl1.DateTimeValue = Date.Now

Date.TryParse(TextBox1.Text, DateTimeControl1.DateTimeValue)

如果日期超出MinDate-MaxDate范围,构造函数将引发错误。

清除控件

DateTimeControl1.DateTimeValue = new Date(0L)

也可以通过在控件中键入<Backspace>来清除日期。

关注点

感谢这个项目,我学会了如何将新的类事件暴露给外部世界。

© . All rights reserved.