找回密码
 立即注册

QQ登录

只需一步,快速开始

szld

论坛元老

38

主题

94

帖子

2万

积分

论坛元老

积分
29978

活字格认证

szld
论坛元老   /  发表于:2013-6-13 18:04  /   查看:4870  /  回复:3
VinForm开发环境,使用c1Calendar1_BeforeDayFormat事件时遇到奇怪的问题.
当选择日期发生改变时c1Calendar1_SelectionChanged事件里加入以下代码:
c1Calendar1.BeforeDayFormat += new EventHandler<BeforeDayFormatEventArgs>(c1Calendar1_BeforeDayFormat);
c1Calendar1.Refresh();
后会一直执行c1Calendar1_BeforeDayFormat事件,从当月的开始日到结束日循环执行的10次左右才跳出c1Calendar1_BeforeDayFormat继续执行后面的代码,想问一下版主是不是有什么设置是可以控制的?

3 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-6-14 17:14:00
沙发
回复 1楼szld的帖子

szld 你好

你是将 c1Calendar1.BeforeDayFormat += new EventHandler<BeforeDayFormatEventArgs>(c1Calendar1_BeforeDayFormat); 放到了 c1Calendar1_SelectionChanged 方法中了吗,这样的话,没触发一次 SelectionChanged 事件,就会为 BeforeDayFormat  绑定一次事件处理函数

建议你在 Form_Load 事件中来执行  c1Calendar1.BeforeDayFormat += new EventHandler<BeforeDayFormatEventArgs>(c1Calendar1_BeforeDayFormat);
回复 使用道具 举报
szld
论坛元老   /  发表于:2013-6-14 17:29:00
板凳
谢谢版主的回答,我的确是将 c1Calendar1.BeforeDayFormat += new EventHandler<BeforeDayFormatEventArgs>(c1Calendar1_BeforeDayFormat); 放到了 c1Calendar1_SelectionChanged 方法中了,因为项目的需求是Calendar的背景色和字体颜色必须要根据选择日期的不同而设置不同的颜色,例如:选择2013/06/01,日期2013/06/10(2013/06/10是根据选中的2013/06/01到数据库里取出的不确定日期)必须改变颜色,选择2013/06/05,日期2013/06/08必须改变颜色,不知道版主有没有什么好的办法解决这个问题?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-6-17 15:11:00
地板
回复 3楼szld的帖子

你可以将 c1Calendar1.BeforeDayFormat += new EventHandler<BeforeDayFormatEventArgs>(c1Calendar1_BeforeDayFormat);  代码移动到 Form_Load 事件中,你在选择日期之后同样会触发 BeforeDayFormat  事件。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部