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

Winforms DateTimePicker ValueChanged事件在没有更改时第一次激发,winforms,calendar,datetimepicker,Winforms,Calendar,Datetimepicker,Winforms 2.0。在表单上粘贴日期时间选择器。默认为今天。单击下拉箭头显示日历,然后单击今天。ValueChanged事件不会触发,即使它已设置为今天 我想做的是复制相同的功能-我想将它(在代码中)重置为今天,下次我通过日历单击今天时,我希望触发ValueChanged事件(就像第一次一样) 如果上述方法不可行,我希望每当我在日历上选择日期时(无论是否有更改)都会触发一些事件 听起来很简单,肯定有人知道答案吗?我不是win form程序员,但看看是否有Day\u Render事件。 这应

Winforms 2.0。在表单上粘贴日期时间选择器。默认为今天。单击下拉箭头显示日历,然后单击今天。ValueChanged事件不会触发,即使它已设置为今天

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

如果上述方法不可行,我希望每当我在日历上选择日期时(无论是否有更改)都会触发一些事件


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

我不是win form程序员,但看看是否有Day\u Render事件。
这应该是每天都会发生的事情……至少有一个是基于web的开发,但我认为是一样的。因此,请查看Render()事件。

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

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


如果您不关心时间组件和/或总是将值读取为dateTimePicker1.value.Date,则可以使用DateTime.Now在代码中初始化控件。当用户从日历中选择“今天”时,ValueChanged事件将触发。否则,您可能会考虑捕获关闭控件事件,该事件在日历控件关闭时被触发(不管值是否改变)。你的解释很有道理,我把它重新设置为DateTime。今天在实验中,它应该是DateTime。现在正如你所指出的。了解特写活动也很好,但我没有在我的案例中使用它,因为我想特别对单击日历日期做出反应,而不是表单上的任何地方。