DateTimePicker ValueChanged事件在没有更改时第一次触发

时间:2009-10-12 01:54:47

标签: winforms calendar datetimepicker

Winforms 2.0。在表单上粘贴DateTimePicker。它默认为今天。单击下拉箭头以显示日历,然后单击“今天”。 ValueChanged事件已发生火灾,即使它已设置为今天。

我想要做的是复制相同的功能 - 我想将它(在代码中)重置为今天,下次我通过日历点击今天我想要触发ValueChanged事件(就像它一样第一次)。

如果无法实现上述目标,我希望每当我在日历上选择日期时都会触发一些事件(无论是否有变化)。

听起来很简单,肯定有人有答案吗?

2 个答案:

答案 0 :(得分:6)

您所看到的是DateTimePicker存储其值的 time 组件以及日期这一事实的副作用。

因此,当您的表单首次初始化时,DateTimePicker正在使用DateTime.Now进行初始化。然后,当您从其下拉日历中选择“今天”时,您值更改为DateTime.Today。

如果您不关心时间组件和/或您总是将值读取为dateTimePicker1.Value.Date,那么您可以使用DateTime.Now在代码中初始化控件,并且当此时,ValueChanged事件将触发用户从日历中选择今天。否则,您可能会考虑捕获CloseUp事件,该事件在关闭日历控件时触发(无论值是否更改)。

答案 1 :(得分:0)

我不是一个胜利形式的程序员,但看看是否有Day_Render事件。 这应该每天开火......至少有一个基于网络的开发,但我认为它是相同的。所以寻找Render()事件。