如何:更改 Windows 窗体 MonthCalendar 控件的外观

更新:2010 年 9 月

Windows 窗体 MonthCalendar 控件允许用多种方法自定义月历的外观。 例如,可以设置配色方案并选择显示或隐藏周数和当前日期。

更改月历的配色方案

  • 设置 TitleBackColorTitleForeColorTrailingForeColor 等属性。 TitleBackColor 属性也确定星期数的字体颜色。 TrailingForeColor 属性确定所显示的月份之前和之后的日期颜色。

    MonthCalendar1.TitleBackColor = System.Drawing.Color.Blue
    MonthCalendar1.TrailingForeColor = System.Drawing.Color.Red
    MonthCalendar1.TitleForeColor = System.Drawing.Color.Yellow
    
    monthCalendar1.TitleBackColor = System.Drawing.Color.Blue;
    monthCalendar1.TrailingForeColor = System.Drawing.Color.Red;
    monthCalendar1.TitleForeColor = System.Drawing.Color.Yellow;
    
    monthCalendar1->TitleBackColor = System::Drawing::Color::Blue;
    monthCalendar1->TrailingForeColor = System::Drawing::Color::Red;
    monthCalendar1->TitleForeColor = System::Drawing::Color::Yellow;
    

    提示

    从 Windows Vista 开始并且根据主题,设置某些属性可能不会更改日历的外观。 例如,如果 Windows 设置为使用 Aero 主题,则设置 BackColorTitleBackColorTitleForeColorTrailingForeColor 属性没有效果。 这是因为已更新的日历版本所呈现的外观在运行时派生自当前操作系统主题。 如果希望使用这些属性并启用早期版本的日历,则可以禁用应用程序的视觉样式。 禁用视觉样式可能会影响应用程序中其他控件的外观和行为。 要在 Visual Basic 中禁用视觉样式,请打开项目设计器并取消选中“启用 XP 视觉样式”复选框。 要在 C# 中禁用视觉样式,请打开 Program.cs 并注释掉 Application.EnableVisualStyles();。 有关视觉样式的更多信息,请参见如何:启用 Windows XP 视觉样式

在控件底部显示当前日期

  • ShowToday 属性设置为 true。 当双击窗体时,下例在显示和省略今天的日期之间切换。

    Private Sub Form1_DoubleClick(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.DoubleClick
       ' Toggle between True and False.
       MonthCalendar1.ShowToday = Not MonthCalendar1.ShowToday
    End Sub
    
    private void Form1_DoubleClick(object sender, System.EventArgs e)
    {
       // Toggle between True and False.
       monthCalendar1.ShowToday = !monthCalendar1.ShowToday;
    }
    
    private:
       System::Void Form1_DoubleClick(System::Object ^  sender,
          System::EventArgs ^  e)
       {
          // Toggle between True and False.
          monthCalendar1->ShowToday = !monthCalendar1->ShowToday;
       }
    

    (Visual C# 和 Visual C++)在窗体的构造函数中放置以下代码以注册事件处理程序。

    this.DoubleClick += new System.EventHandler(this.Form1_DoubleClick);
    
    this->DoubleClick += gcnew System::EventHandler(this,
       &Form1::Form1_DoubleClick);
    

显示周数

  • ShowWeekNumbers 属性设置为 true。 可以用代码或在“属性”窗口中设置此属性。

    周数以单独的列出现在一周的第一天的左边。

    MonthCalendar1.ShowWeekNumbers = True
    
    monthCalendar1.ShowWeekNumbers = true;
    
    monthCalendar1->ShowWeekNumbers = true;
    

请参见

任务

如何:在 Windows 窗体 MonthCalendar 控件中选择日期范围

如何:使用 Windows 窗体 MonthCalendar 控件以粗体显示特定日期

如何:在 Windows 窗体 MonthCalendar 控件中显示多个月份

其他资源

MonthCalendar 控件(Windows 窗体)

修订记录

日期

修订记录

原因

2010 年 9 月

移除了 J#。 添加了关于视觉样式的说明。

信息补充。