C#和月历,选择多个日期

标签 c# winforms monthcalendar

我正在制作一个程序,帮助人们用 C# 为一个部门“预订”订单。他们需要能够选择不同月份的多个日期。

我更愿意拥有它,这样他们就可以单击一个日期,然后按住 Shift 键单击另一个日期以选择这两个日期之间的所有日期,并控制单击以进行单选/取消选择。他们必须能够在月份之间移动,同时仍然保留他们在上个月点击的所有日期,这样他们就可以概览他们选择的日期以使其更容易。

最好的方法是什么?我应该使用 Visual Studio 的默认月历还是存在更灵活的月历?

最佳答案

您可以通过检测对日期的点击,然后在加粗日期中添加或删除点击日期来使其工作。实现 MonthCalendar 的 MouseDown 事件:

private void monthCalendar1_MouseDown(object sender, MouseEventArgs e) {
  MonthCalendar.HitTestInfo info = monthCalendar1.HitTest(e.Location);
  if (info.HitArea == MonthCalendar.HitArea.Date) {
    if (monthCalendar1.BoldedDates.Contains(info.Time))
      monthCalendar1.RemoveBoldedDate(info.Time);
    else 
      monthCalendar1.AddBoldedDate(info.Time);
    monthCalendar1.UpdateBoldedDates();
  }
}

这只是一个问题,它像便宜的汽车旅馆一样闪烁。没有解决办法。

关于C#和月历,选择多个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1738824/

相关文章:

c# - 检查类是否已实例化

c# - 将 List<MyObject> 转换为 List<IMyInterface> 的最佳方法是什么?

c# - 创建新实例或使用公共(public)静态方法?

c# - .net 使用 Visual Studio 进行远程调试—— "Can' t 查找路径。”

c# - 在 C# 中对数据网格进行排序

c# - 部分 MonthCalendar 本地化失败 ('Today' 标签未翻译)

winforms - 显示和隐藏面板(Powershell GUI)

C# Winforms 线程 : Closed Form Gets Invoked

javascript - 算上一个月

Mysql查询按月分组