目录
MonthCalendar控件(月历控件)提供了一个直观的图形界面,可以让用户查看和设置日期。MonthCalendar控件中可以使用鼠标进行拖曳,用于选择一段连续的时间,此段连续的时间包括时间的起始和结束。
一、更改MonthCalendar控件的外观
MonthCalendar控件允许用多种方法自定义月历的外观。例如,可以选择显示或隐藏周数和当前日期。将ShowWeekNumbers属性设置为true,实现在控件中显示周数。也可以用代码或在“属性”窗口中设置此属性。周数以单独的列出现在一周的第一天的左边。
二、在MonthCalendar控件中显示多个月份
MonthCalendar控件最多可同时显示12个月。默认情况下,控件只显示1个月,但可以通过设置CalendarDimensions属性指定显示多少个月以及它们在控件中的排列方式。当更改月历尺寸时,控件的大小也会随之改变,因此应确保窗体上有足够的空间供新尺寸使用。
CalendarDimensions属性一次只显示一个日历年,并且最多可显示12个月。行和列的有效组合得到的最大乘积为12,对于大于12的值,将在最适合的基础上修改显示。
三、在MonthCalendar控件中选择日期范围
如果要在MonthCalendar控件中选择日期范围,必须设置SelectionStart和SelectionEnd属性。这两个属性分别用于设置日期的起始和结束。
运行程序,选择某个日期作为起始日期,然后按住Shift键后,再选择结束日期。
1.源码
//Form1.cs
//MonthCalendar控件(月历控件)
//更改MonthCalendar控件的外观
//在MonthCalendar控件中显示多个月份
//在MonthCalendar控件中选择日期范围
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _16
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//monthCalendar1填满父窗体,这个功能在这个控件里很鸡肋
monthCalendar1.Dock = DockStyle.Fill;
//显示周数
monthCalendar1.ShowWeekNumbers = true;
//monthCalendar1.ShowTodayCircle = true;
//monthCalendar1.ShowToday = true;
monthCalendar1.Show();
//在MonthCalendar控件中显示多个月份
monthCalendar1.CalendarDimensions = new Size(2, 2); //2行2列
//显示各个label文本
label1.Text = "当前日期:";
label2.Text = "起始日期:";
label3.Text = "结束日期:";
//设置各个textBox大小
textBox1.Size = new Size(120, 12);
textBox2.Size = new Size(120, 12);
textBox3.Size = new Size(120, 12);
//设置textBox1的文本显示当前日期
textBox1.Text = monthCalendar1.TodayDate.ToString();
}
/// <summary>
/// 设置textBox2textBox3文本显示起止日期
/// 运行时按下shift键选择结束日期
/// 期间不大于1周
/// </summary>
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
textBox2.Text = monthCalendar1.SelectionStart.ToString();
textBox3.Text = monthCalendar1.SelectionEnd.ToString();
}
}
}
2.生成效果