C#datetimepicker使用最大和最小日期设置最大和最小时间

时间:2019-12-13 19:42:41

标签: c# winforms datetimepicker

我在Winform应用程序中有一个datetimepicker控件。我想用最小日期和最大日期设置最小时间和最大时间。就像每天的上午09点到晚上18点一样,应该可以选择,并且datetimepicker仅应在今天到15天后显示。

baslangicDateTimePicker.Format = DateTimePickerFormat.Custom;
baslangicDateTimePicker.CustomFormat = "dd/MM/yyyy hh tt";
baslangicDateTimePicker.MinDate = DateTime.Now.AddDays(1).Date.AddHours(9);
baslangicDateTimePicker.MaxDate = DateTime.Now.AddDays(14).Date.AddHours(17);

我尝试过这种方法,但是每天都没有最小和最大时间。

1 个答案:

答案 0 :(得分:1)

 private void baslangicDateTimePicker_ValueChanged(object sender, EventArgs e)
        {
            if (baslangicDateTimePicker.Value.ToShortTimeString() == "18:00")
            {
                DateTime temp = baslangicDateTimePicker.Value.AddDays(1);
                if (temp >= baslangicDateTimePicker.MaxDate.Date)
                    baslangicDateTimePicker.Value.AddHours(-1);
                else
                    baslangicDateTimePicker.Value = temp.AddHours(-9);
            }
            if (baslangicDateTimePicker.Value.ToShortTimeString() == "08:00")
            {
                DateTime temp = baslangicDateTimePicker.Value.AddDays(-1);
                if (temp <= baslangicDateTimePicker.MinDate.Date)
                    baslangicDateTimePicker.Value.AddHours(1);
                else
                    baslangicDateTimePicker.Value = temp.AddHours(9);
            }
        }

这样解决了我的问题。它有点凌乱并且写得不好,但是可以工作并且可以给其他人以意见。感谢Flydog57的建议。

相关问题