在C#的WinForms应用程序中,是否可以限制用户从dateTimePicker
选择哪些日期?
对我来说,基本原则是:我有一个包含5个项目的comboBox
,根据用户选择的项目,我想限制用户可以选择的日期,并将不可用的日期变灰。
这种做法可行吗?
在C#的WinForms应用程序中,是否可以限制用户从dateTimePicker
选择哪些日期?
对我来说,基本原则是:我有一个包含5个项目的comboBox
,根据用户选择的项目,我想限制用户可以选择的日期,并将不可用的日期变灰。
这种做法可行吗?
您可以为C# WinForms DTP设置最小和最大日期,因此如果您希望这样做,那么可以使用MinValue
和MaxValue
变量。您无法选择不允许的日期块。这是您必须自己添加的内容。有两种可能的方法:
DateTimePicker
控件具有MaxDate
和MinDate
属性。设置它们,您可以控制可选择的日期范围。目前在我的Windows XP上,使用Windows Classic主题时,不可选择的日期不会显示为灰色,但这可能因操作系统、主题等而异。如果您一定要将它们变灰,那么您将不得不子类化DateTimePicker控件并自己进行(或部分)绘制。
你可以按照以下方式设置日期限制
dateTimePicker1.MinDate = DateTime.Today.AddDays(-2);
dateTimePicker1.MaxDate = DateTime.Today.AddDays(2);
在这些情况下,仅有5个可用日期可以供用户选择,其余日期不可选。您可以在组合框的selectedindex changed事件中设置这些值,并根据您的要求/逻辑进行限制。
MonthCalendar
控件。详情请见:http://msdn.microsoft.com/zh-cn/library/f9a9k6dd.aspx - Merlyn Morgan-Graham