禁用日期时间选择器中的某些日期 winform c#

本文关键字:日期 winform 时间 选择器 | 更新日期: 2023-09-27 18:33:25

我需要在DateTimePicker中禁用某些日期,可以吗?例如,我有一个日期范围:{ 20/12/2014、21/12/2014、22/12/2014、23/12/2014、24/12/2014 }我需要禁用中间一个或在其他情况下禁用最后一个,有人可以帮助我吗?

dateTimePicker1.MainDate 和 dateTimePicker1.MaxDate 是不够的。

谢谢。

禁用日期时间选择器中的某些日期 winform c#

从 .Net 4 开始,在 WPF 中是可能的。然后,可以在 Winforms 应用中承载 WPF datepicker。禁用星期六和星期日的示例(来自 MSDN):

DatePicker datePickerWithBlackoutDates = new DatePicker();
datePickerWithBlackoutDates.DisplayDateStart = new DateTime(2009, 8, 1);
datePickerWithBlackoutDates.DisplayDateEnd = new DateTime(2009, 8, 31);
datePickerWithBlackoutDates.SelectedDate = new DateTime(2009, 8, 10);
datePickerWithBlackoutDates.BlackoutDates.Add(
    new CalendarDateRange(new DateTime(2009, 8, 1), new DateTime(2009, 8, 2)));
datePickerWithBlackoutDates.BlackoutDates.Add(
    new CalendarDateRange(new DateTime(2009, 8, 8), new DateTime(2009, 8, 9)));
datePickerWithBlackoutDates.BlackoutDates.Add(
    new CalendarDateRange(new DateTime(2009, 8, 15), new DateTime(2009, 8, 16)));
datePickerWithBlackoutDates.BlackoutDates.Add(
    new CalendarDateRange(new DateTime(2009, 8, 22), new DateTime(2009, 8, 23)));
datePickerWithBlackoutDates.BlackoutDates.Add(
    new CalendarDateRange(new DateTime(2009, 8, 29), new DateTime(2009, 8, 30)));
datePickerWithBlackoutDates.DateValidationError +=
new EventHandler<DatePickerDateValidationErrorEventArgs>(DatePicker_DateValidationError);

有关 MSDN: http://msdn.microsoft.com/en-us/library/k7z0zy8k%28v=vs.110%29.aspx 的更多详细信息

不过,我还没有看到任何专门针对Winforms的类似产品。作为解决方法,您可以将此 WPF 组件移植到 Winforms 应用程序中。

以下是有关 WPF 和 WinForms 互操作的 MSDN 资源:

https://msdn.microsoft.com/en-us/library/ms751797(v=vs.100).aspx

您可以指定最大日期,但不能有选择地禁用有效范围内的任意日期。

请参阅如何禁用日期时间选取器控件上的某些日期?