限制C#winforms中的日期DateTimePicker

是否可以限制用户可以从C#winforms应用程序上的dateTimePicker选择哪些日期?

我的基本原则是:我有一个包含5个项目的组合comboBox ,根据用户选择的项目,我想限制用户可以选择的日期,使不可用的日期变灰。

这可能吗?

使用MinDateMaxDate属性。

 dateTimePicker.MinDate = DateTime.Now; dateTimePicker.MaxDate = DateTime.Now.AddDays(15); 

的DateTimePicker
(在法语Windows 7上呈现)

您可以为C#WinForms DTP设置最小和最大日期,因此如果您想要这样做,那么您可以使用MinValueMaxValue变量。 您无法选择不允许的日期块。 这是你必须自己添加的东西。 有两种可能的方法:

  • 处理ValueChanged事件,然后validation所选日期。
  • inheritanceDTP类并在其中添加一些额外的function。

DateTimePicker控件具有MaxDateMinDate属性。 设置这些,您可以控制可以选择的日期范围。 目前在我的带有Windows经典主题的Windows XP上,不可选择的日期不会显示为灰色,但这可能会因操作系统,主题等而有所不同。如果您必须将它们灰化,那么您必须inheritanceDateTimePicker控件并执行(或绘画自己的一部分。

是的,至少MSDN这么说。 请参考这里 。

您可以按以下方式设置日期限制

 dateTimePicker1.MinDate = DateTime.Today.AddDays(-2); dateTimePicker1.MaxDate = DateTime.Today.AddDays(2); 

在这些情况下,只有5个可用日期可供用户选择,其余日期不可用。 您可以在combobox的selectedindex已更改事件中设置这些值,并根据您的需求/逻辑对其进行限制。