限制C#win表单中的日期DateTimePicker

时间:2011-12-02 08:49:30

标签: c# .net datetimepicker

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

我的基本原则是:我有一个comboBox,其中有5个项目,根据用户选择的项目,我想限制用户可以选择的日期,具有不可用的日期变灰了。

这可能吗?

5 个答案:

答案 0 :(得分:10)

使用MinDateMaxDate属性。

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

DateTimePicker
(在法语Windows 7上呈现)

答案 1 :(得分:1)

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

  • 处理ValueChanged事件,然后验证所选日期。
  • 继承DTP类并在其中添加一些额外的功能。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

是的,至少MSDN这么说。请参阅here

答案 4 :(得分:0)

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

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

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