我遇到了Windows窗体中的DateTimePicker控件的一个非常具体的错误。该控件具有自定义格式(MM-YYYY - > 01/2010) - 信用卡的月份/年份。今天是九月二十九日。如果用户选择控件,并使用键盘将月份设置为2月,则控件将引发ArgumentOutOfRangeException。没有像2009年2月29日这样的日期。这也将在31日的几天内发生,只有30天的时间转移到一个月。我该如何处理窗体窗体datetimepicker ArgumentOutOfRangeException?
将日期设置为'01'可以很容易地处理此问题,但用户可以单击日历以手动选择第30个,然后使用键盘选择2月。
当输入发生在GUI上而不是代码中时,如何捕获此异常?我们试图在TextChanged事件中捕获它,但这已经太晚了。异常已被抛出。
有没有办法处理这种情况?如果控件自动将该日更改为当月的最高值,那将会很好。或者至少如果它通过一个事件通过例外。
(我知道我们可以捕获KeyPressed事件并将每天的日期设置为01,但这种感觉是'hacky')。
我刚刚测试过是否会在向用户显示日期时发生,而不是。所以你是对的,正在使用错误的控制。但是,我问这个问题的目的是要找出是否有可能处理以类似方式发生的异常?如果从控件的UI交互中生成异常。 – 2009-09-29 06:49:24