C#的MonthCalendar控件(月历控件)

目录

一、更改MonthCalendar控件的外观

二、在MonthCalendar控件中显示多个月份

三、在MonthCalendar控件中选择日期范围

1.源码

2.生成效果 


        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.生成效果 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wenchm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值