3

Winforms 2.0。在表单上粘贴一个 DateTimePicker。它默认为今天。单击下拉箭头以显示日历,然后单击今天。ValueChanged 事件会触发,即使它已经设置为今天。

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

如果上述情况不可行,我想要一些在我在日历上选择日期时总是触发的事件(无论是否有变化)。

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

4

2 回答 2

6

您所看到的是 DateTimePicker 存储其值的时间分量以及日期这一事实的副作用。

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

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

于 2009-10-12T02:07:00.107 回答
0

我不是赢表程序员,但看看是否有 Day_Render 事件。这应该每天都在触发……至少有一个用于基于 Web 的开发,但我认为它是相同的。所以寻找 Render() 事件。

于 2009-10-12T01:59:31.147 回答