Winforms MonthCalendar DateSelected 事件不会在第一次单击 MaxDate 时触发
Posted
技术标签:
【中文标题】Winforms MonthCalendar DateSelected 事件不会在第一次单击 MaxDate 时触发【英文标题】:Winforms MonthCalendar DateSelected event doesn't fire on first click of MaxDate 【发布时间】:2015-01-15 00:47:58 【问题描述】:正如标题所说,如果我将 MonthCalendar 放在表单上并设置其 MaxDate,那么第一次单击最大日期不会触发 DateSelected 事件(尽管 DateChanged 会触发两次)。它会在第一次点击任何其他日期时触发,或者在第二次点击最大日期时触发。
这是一个已知的错误吗?如果是这样,有解决办法吗?否则,对合理的解决方法有什么建议吗?谢谢。
【问题讨论】:
【参考方案1】:我也遇到了问题,我发现,如果单击最大日期,DateChanged 会触发两次。
如果将控件的 MaxDate 属性设置为日期并且时间戳为 23:59:59,则可以更正该错误。
这对我有用,现在它触发 1 次 DateChanged,然后触发 1 次 DateSelected。
没有时间戳的示例,其中 16.06.2015 是我的 MaxDate:
DateChanged Start: 04.06.2015 End: 04.06.2015 23:59:59
DateSelected Start: 04.06.2015 End: 04.06.2015 23:59:59
DateChanged Start: 09.06.2015 End: 09.06.2015 23:59:59
DateSelected Start: 09.06.2015 End: 09.06.2015 23:59:59
DateChanged Start: 16.06.2015 End: 16.06.2015
DateChanged Start: 16.06.2015 End: 16.06.2015
时间戳示例,其中 16.06.2015 23:59:59 是我的 MaxDate:
DateChanged Start: 10.06.2015 End: 10.06.2015 23:59:59
DateSelected Start: 10.06.2015 End: 10.06.2015 23:59:59
DateChanged Start: 15.06.2015 End: 15.06.2015 23:59:59
DateSelected Start: 15.06.2015 End: 15.06.2015 23:59:59
DateChanged Start: 16.06.2015 End: 16.06.2015 23:59:59
DateSelected Start: 16.06.2015 End: 16.06.2015 23:59:59
【讨论】:
以上是关于Winforms MonthCalendar DateSelected 事件不会在第一次单击 MaxDate 时触发的主要内容,如果未能解决你的问题,请参考以下文章
Winforms MonthCalendar DateSelected 事件不会在第一次单击 MaxDate 时触发
带有嵌入式 MonthCalendar 问题的 UserControl