单击今天时,DateTimePicker不会生成valuechanged

时间:2017-04-26 17:15:01

标签: c# winforms datetimepicker

我正在使用Visual Studio 2015进行开发,并创建了一个面向.NET Framework 4.5.2的WinForm应用程序。

我在表单上放置了一个DateTimePicker控件。我在ValueChanged事件处理程序上有代码。

我在ValueChanged事件处理程序的第一行代码上放了一个断点。

当我在调试器中运行应用程序并按下"今天" datetimepicker中的按钮,它填写今天的日期,但不会触发ValueChanged事件。如果我单击显示日历并选择日期的下拉箭头,它将触发ValueChanged事件。

不确定我点击的元素是否被称为"今天"按钮。它只是下拉箭头的左侧,当点击时将今天的日期填入datetimepicker。

我需要在用户点击它并运行一些代码时捕获。

如果没有触发ValueChanged事件,那么会对如何捕获它表示赞赏和想法。

2 个答案:

答案 0 :(得分:1)

因为日期时间选择器可以使用今天的日期/时间进行初始化,当您只是点击下拉菜单时,它不会改变它,它仍然具有今天的日期/时间。如果您重新选择今天的日期,则日期时间的时间部分已更改,从而触发valueChanged事件。

有一个dropDown事件可能对您有用:DropDown Event。它会在显示日历时触发。

另一个事件可能是MouseUp事件,您必须使用“今日”按钮所在的位置来捕获该点击。

Here's DTP可用的不同事件的MSDN链接。

答案 1 :(得分:0)

我建议您希望用户选择当前日期。我的意思是你应该将默认值设置为当前日期。在ValueChanged事件中,您可以完成用户更改日期时所需要执行的操作。