MonthCalendar - 禁用天数

Posted

技术标签:

【中文标题】MonthCalendar - 禁用天数【英文标题】:MonthCalendar - Disable days 【发布时间】:2013-10-06 23:00:03 【问题描述】:

我正在使用 Visual Studio 使用 C# 编写应用程序,并且正在使用 Windows 窗体。我需要用户能够从特定范围中选择一个日期(为此我使用MinDateMaxDate),并且只有一周中的某些天。例如,我想禁用 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 - 禁用天数的主要内容,如果未能解决你的问题,请参考以下文章

C# 中的月历

从选定的月历日期获取星期

当 ShowToday 为 False 时,MonthCalendar 控件有额外的边框

Python常用包简介

如何在 C# 中隐藏 MonthCalendar 控件的下一个/上一个按钮

C语言输入年份月份,输出天数。