在datetimepicker winform中禁用某些日期c#

时间:2014-12-05 15:35:56

标签: c# .net winforms

我需要在DateTimePicker中禁用一些日期,是否可能? 例如,我有一个日期范围:{20/12/2014,2014年12月21日,2014年12月22日,2014年12月23日,2014年12月24日} 我需要禁用midle one或者其他情况下的最后一个,有人可以帮助我吗?

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

谢谢。

2 个答案:

答案 0 :(得分:2)

从.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

答案 1 :(得分:0)

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

请参阅How do I disable some dates on a DateTimePicker control?