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

标签 winforms calendar datetimepicker

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

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

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

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

最佳答案

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

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

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

关于winforms - DateTimePicker ValueChanged 事件在没有更改时第一次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1552357/

相关文章:

c# - 如果密码错误,重新显示表单

jquery - Bootstrap Datetimepicker 和 X-editable - 解析错误

android - 如何仅显示当前月份并预览 datePickerDialog 中可选择的月份日期?

.net - 提取window的所有子窗口

c# - 如何在属性网格的自定义字段中显示相似值?

C# Outlook - 调用被被叫方拒绝

java - 如何通过我的应用程序将事件设置到设备日历?

c# - 为什么将 Winforms DateTimePicker 设置为 DateTime.MinValue 会失败?

c# - 禁止在 TextBox 中选择文本

Java:从日期获取月份整数