如何在 monthCalendar 控件中将每个星期一设为粗体?

How do I make every Monday Bold in the monthCalendar control?

我正在开发一个应用程序。我最初想让用户只 select 一个星期一。花了相当多的时间后,我发现除非我创建自己的控件,否则这是不可能的。

因此我想知道如何使星期一的粗体(甚至更改背景颜色)使其更引人注目?

有没有办法以编程方式 select 星期一(同一周),而不管 select 星期几?

例如,如果他们单击 2/16,则 2/13 将自动 selected。

我在日期时间选择器值更改事件中完成了此操作。 似乎工作。希望对您有所帮助!

  private void dtP1_ValueChanged(object sender, EventArgs e)
        {
            var days = DayOfWeek.Monday - dtP1.Value.DayOfWeek;

            if (dtP1.Value.DayOfWeek != DayOfWeek.Monday)
            {
                dtP1.Value = new DateTime(dtP1.Value.Year, dtP1.Value.Month, dtP1.Value.Day + days);
            }

        }

我已经设法为它编写和扩展方法。

 public static class DateTimeHelper
    {
        public static void AlwaysChooseMonday(this DateTimePicker dtp, DateTime value)
        {
            var days = DayOfWeek.Monday - dtp.Value.DayOfWeek;

            if (dtp.Value.DayOfWeek != DayOfWeek.Monday)
            {
                dtp.Value = new DateTime(dtp.Value.Year, dtp.Value.Month, dtp.Value.Day + days);
            }
        }
    }

那么值改变事件就变成了

 private void dtp1(object sender, EventArgs e)
        {
             dtP1.AlwaysChooseMonday(dtP1.Value);
        }

整洁多了。