如何在DateTimePicker winforms c#中启用/禁用特定日期

时间:2016-10-15 12:47:52

标签: c# winforms datetimepicker

我正在为一家诊所编写一份C# Windows申请表,并为每位医生存储了数天的作品

Dr.John每周一和周二如何在DateTimePicker中启用与特定日期匹配的日期并禁用其他日期。

我不知道哪些方法和功能可以帮助

1 个答案:

答案 0 :(得分:1)

而不是DateTimePicker你可以

  • 动态创建表单
  • 向其添加MonthCalendar
  • 将有效或无效日期添加到BoldDates集合
  • DateChanged事件
  • 进行编码
  • 测试是否选择了有效日期
  • 将其添加到选定日期列表

详细信息取决于您的需求:单个日期或范围等。

确保修剪时间部分,就像这样添加日期:

List<DateTime> bold = new List<DateTime>();
for (int i = 0; i < 3; i++)
    bold.Add(DateTime.Now.AddDays(i*3).Date);

monthCalendar1.BoldedDates = bold.ToArray();

要仅选择有效日期,可以使用以下代码:

List<DateTime> selected = new List<DateTime>();

private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
    for   (DateTime dt = monthCalendar1.SelectionStart.Date; 
                    dt.Date <= monthCalendar1.SelectionEnd.Date; 
                    dt = dt.AddDays(1))
    {
        if (!monthCalendar1.BoldedDates.Contains(dt)
        && !selected.Contains(dt)) selected.Add(dt.Date);
    }
}

不幸的是,设置任何样式的选项仅限于粗体日期。似乎没有颜色或其他视觉线索。

因此,对于任何非常好的事情,你必须自己建立一个日期选择器..