C# 如何在DateTimePicker WinC窗体中启用/禁用特定日期#

C# 如何在DateTimePicker WinC窗体中启用/禁用特定日期#,c#,winforms,datetimepicker,C#,Winforms,Datetimepicker,我正在为一家诊所编写一个C#Windows应用程序,例如,我为每位医生存储了工作日数 John博士每周一和周二都在研究如何在DateTimePicker中为仅与特定日期匹配的日期启用日期,并禁用其他日期 我不知道有什么方法和函数可以帮助你,而不是你可以使用的日期时间选择器 动态创建表单 添加一个MonthCalendar 将有效或无效日期添加到BoldDates集合中 对DateChanged事件进行编码 测试以查看是否选择了有效日期 将其添加到拾取的日期列表中 细节取决于你想要什么:一个单

我正在为一家诊所编写一个
C#
Windows
应用程序,例如,我为每位医生存储了工作日数

John博士每周一和周二都在研究如何在
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 bold=new List();
对于(int i=0;i<3;i++)
粗体.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);
    }
}
List selected=新列表();
private void monthCalendar1\u DateSelected(对象发送方,DateRangeEventArgs e)
{
对于(DateTime dt=monthCalendar1.SelectionStart.Date;

dt.Date展示你的尝试。在大多数情况下,你是对的,OP应该展示一些努力或共享一些代码来重现问题。但有些问题不需要代码。也许OP想做一些事情,但他们没有找到合适的方法来做这项工作。在这种情况下,与其发布代码或共享一些使用较少的链接,不如问一个问题问题直截了当(IMO:)还有一个由创建的开源库。这是他的网站和软件包中的链接。虽然该库名为
FarsilLibrary
,但其
DateTimePicker
MonthView
支持Jalali(Shamsi)、Hijri和Gregorian。它使用一些规则启用自定义绘图日期。