MonthCalendar - 禁用天数
Posted
技术标签:
【中文标题】MonthCalendar - 禁用天数【英文标题】:MonthCalendar - Disable days 【发布时间】:2013-10-06 23:00:03 【问题描述】:我正在使用 Visual Studio 使用 C# 编写应用程序,并且正在使用 Windows 窗体。我需要用户能够从特定范围中选择一个日期(为此我使用MinDate
和MaxDate
),并且只有一周中的某些天。例如,我想禁用 Mondays。我正在使用MonthCalendar
,但我还没有找到禁用星期几的方法...有可能吗?
【问题讨论】:
【参考方案1】:您无法阻止用户在日历上选择日期。不过可以投诉并提供更好的选择:
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
if (e.Start.DayOfWeek == DayOfWeek.Monday)
MessageBox.Show("I hate mondays");
monthCalendar1.SelectionStart = e.Start.AddDays(1);
使用BoldedDates
属性使有效选择更加明显。
【讨论】:
+1。并且由于在控件的 UI 上没有“您无法选择此日期”的视觉提示,因此请考虑使用工具提示并设置粗体、背景等。【参考方案2】:简短的回答是否定的。您可以添加一个验证事件来检查选择了一周中的哪一天。
内置控件仅提供这么多开箱即用的选项。要禁用一周中的某些天,您需要编写自己的控件。
一旦您开始编写自定义控件并且卡住了,您可以在此处发布您的代码和问题,人们会提供帮助。
【讨论】:
以上是关于MonthCalendar - 禁用天数的主要内容,如果未能解决你的问题,请参考以下文章
当 ShowToday 为 False 时,MonthCalendar 控件有额外的边框