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

C# datetimepicker set max and min time with max and min date

我在 Winform 应用程序中有一个 datetimepicker 控件。我想用最小日期和最大日期设置最小时间和最大时间。就像每天上午 9 点到晚上 18 点应该是可选的,日期时间选择器应该只在今天到 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);

我试过这样,但它在每天的最短和最长时间内不起作用。

 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的建议