限制C#winforms中的日期DateTimePicker
是否可以限制用户可以从C#winforms应用程序上的dateTimePicker
选择哪些日期?
我的基本原则是:我有一个包含5个项目的组合comboBox
,根据用户选择的项目,我想限制用户可以选择的日期,使不可用的日期变灰。
这可能吗?
使用MinDate
和MaxDate
属性。
dateTimePicker.MinDate = DateTime.Now; dateTimePicker.MaxDate = DateTime.Now.AddDays(15);
(在法语Windows 7上呈现)
您可以为C#WinForms DTP设置最小和最大日期,因此如果您想要这样做,那么您可以使用MinValue
和MaxValue
变量。 您无法选择不允许的日期块。 这是你必须自己添加的东西。 有两种可能的方法:
- 处理ValueChanged事件,然后validation所选日期。
- inheritanceDTP类并在其中添加一些额外的function。
DateTimePicker
控件具有MaxDate
和MinDate
属性。 设置这些,您可以控制可以选择的日期范围。 目前在我的带有Windows经典主题的Windows XP上,不可选择的日期不会显示为灰色,但这可能会因操作系统,主题等而有所不同。如果您必须将它们灰化,那么您必须inheritanceDateTimePicker控件并执行(或绘画自己的一部分。
是的,至少MSDN这么说。 请参考这里 。
您可以按以下方式设置日期限制
dateTimePicker1.MinDate = DateTime.Today.AddDays(-2); dateTimePicker1.MaxDate = DateTime.Today.AddDays(2);
在这些情况下,只有5个可用日期可供用户选择,其余日期不可用。 您可以在combobox的selectedindex已更改事件中设置这些值,并根据您的需求/逻辑对其进行限制。