Windows Forms의 DateTimePicker 컨트롤과 관련된 매우 구체적인 버그가 발생했습니다. 컨트롤에는 사용자 정의 형식 (MM-YYYY -> 01/2010) - 신용 카드의 월/년이 있습니다. 오늘은 9 월 29 일입니다. 사용자가 컨트롤을 선택하고 키보드를 사용하여 월을 2 월으로 설정하면 컨트롤에서 ArgumentOutOfRangeException이 발생합니다. 2009 년 2 월 29 일과 같은 날짜는 없습니다. 30 일만에 한 달로 이동하여 31 일째되는 날에도 발생합니다.Windows Forms datetimepicker ArgumentOutOfRangeException을 어떻게 처리 할 수 있습니까?
일을 '01'로 설정하면 쉽게 처리 할 수 있지만 사용자가 캘린더를 클릭하여 수동으로 30 일을 선택한 다음 키보드를 사용하여 2 월을 선택할 수 있습니다.
GUI에서 입력이 일어나고 실제로 코드에서 발생하지 않을 때 어떻게이 예외를 포착 할 수 있습니까? 우리는 TextChanged 이벤트에서 그것을 잡으려고 시도했지만, 이미 너무 늦었습니다. 예외가 이미 발생했습니다.
이 사건을 처리 할 수있는 방법이 있습니까? 컨트롤이 해당 달의 가장 높은 값으로 날짜를 자동으로 변경하면 좋을 것입니다. 적어도 이벤트를 통해 예외를 통과 한 경우.
(KeyPressed 이벤트를 트랩하고 매번 01로 설정할 수 있지만 '해킹'이라고 느낄 수 있음을 알고 있습니다.)
는 하루가 사용자에게 표시 될 때 발생하는 경우 난 그냥 테스트, 그리고 그것을하지 않습니다. 당신 말이 맞습니다. 잘못된 컨트롤이 사용 중입니다. 그러나 질문을 던지는 목적은 유사한 방식으로 발생한 예외를 처리 할 수 있는지 파악하는 것이 었습니다. 컨트롤의 UI 상호 작용에서 예외가 생성되는 경우 –