在MonthCalendar控件中选中日期

本文介绍了在.NET环境中如何处理MonthCalendar控件的DateSelected事件,以响应用户选择日期的操作。通过HitTest方法判断用户点击的是日期部分,并记录选中的年、月、日。当用户选中日期时,程序会自动关闭窗体。详细代码示例和MonthCalendar.HitArea枚举类型的其他值在文中提及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在MonthCalendar控件中选中日期

         MonthCalendar是VS.NET里面的一个月历控件,虽然现在有很多别人写的月历控件,但这个控件对付不少应用还是足够了。由于最近一直在写记帐软件,其中就得用它选日期,所以对它大致了解了一些。

        

         在这个控件中点每个元素(日期、标题、星期、链接等等)都会触发一个点击事件,而.NET中并没有给每种点击都安排一个事件(只有一个DateSelected事件),因此需要用户自己过滤。

         可以用这样编写这个事件处理函数(这个函数只处理选中日期的情况):

 1

        private

 

void monthCalendar1_DateSelected(object sender, System.Windows.Forms.DateRangeEventArgs e)

 2

        

{        

 3

            //将用户在MonthCalendar上点击的坐标转换程用户区坐标,并根据坐标获得点击类型

 4

            string s=System.Convert.ToString(monthCalendar1.HitTest(this.PointToClient

 5

 6

(MonthCalendar.MousePosition)).HitArea);

 7

            //如果用户点中了日期则设置并退出

 8

            if(s.Equals("Date"))

 9

            

{

10

                //以下记录选中的日期的各个值

11

                _year=System.Convert.ToString(e.Start.Year);

12

                _month=System.Convert.ToString(e.Start.Month);

13

                _day=System.Convert.ToString(e.Start.Day);

14

                _dateSelected=true;

15

                //如果选中日期就自动关闭窗体

16

                this.Close();

17

            }

18

        }

          MonthCalendar.HitArea枚举类型还有很多别的值,对应月历中点的类型,这个参看MSDN。

 

源文档 <http://lzcarl.cnblogs.com/archive/2005/08/16/216404.aspx>

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值