Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将日期时间选择器设置为灰色?_C#_Winforms_Datetime - Fatal编程技术网

C# 将日期时间选择器设置为灰色?

C# 将日期时间选择器设置为灰色?,c#,winforms,datetime,C#,Winforms,Datetime,我正在用VS2012编写一个酒店预订系统,它使用ms sql,在预订中我有两个datetimepicker控件。当我在第一个日期选择器中选择一个日期时,该日期会自动传输到第二个日期选择器。现在,我希望当用户打开第二个datetimepicker时,无法从第一个datetimepicker中选择第一个日期之前的日期。我不想使用if方法显示消息,我只想将日期显示为灰色 这有可能吗?怎么可能 *编辑(我希望如何查看或类似的屏幕截图) *edit2:我想灰显的不是控件(dateTimePicker2),

我正在用VS2012编写一个酒店预订系统,它使用ms sql,在预订中我有两个datetimepicker控件。当我在第一个日期选择器中选择一个日期时,该日期会自动传输到第二个日期选择器。现在,我希望当用户打开第二个datetimepicker时,无法从第一个datetimepicker中选择第一个日期之前的日期。我不想使用if方法显示消息,我只想将日期显示为灰色

这有可能吗?怎么可能

*编辑(我希望如何查看或类似的屏幕截图)

*edit2:我想灰显的不是控件(dateTimePicker2),而是控件中的日期小于dateTimePicker1中选择的日期。提供的屏幕截图位于我要查找的区域。

您可以尝试以下方法:

DateTimePicker2.MinValue = Convert.toDateTime(DateTimePicker1.SelectedDate);
编辑


标准控件不支持日期时间选择器的灰色输出。如果您想这样做,您需要对datetimepicker进行子类化,或者查看一个预先制作的控件,比如来自devexpress的DateEdit(我认为它们甚至有免费控件)。

将第二个datepicker MinDate更改为第一个datepicker selected date。。如下图所示

rdpDatePicker2.MinDate = rdpDatePicker1.SelectedDate.Value;

我认为你可以阻止用户更改日期部分,但要在正常显示时间部分时使其变为灰色,这并不容易。用户必须能够在第二个日期时间选择器中更改日期,而不是在第一个日期时间选择器中选择的日期之前。是否允许用户选择时间部分?不,用户只能更改日期部分,时间是不允许的。这确实起作用了。删除了datetimepicker1中所选日期之前的日期。它看起来有点奇怪,但我会用它,直到我能解决它变成灰色。dateTimePicker2.MinDate=dateTimePicker2.Value.AddDays(1);