안녕하세요.. 쪼코아몬드입니다.
아직은 C#은 노란병아리 초급반 신세를 벗어나지 못하고 있어서 좌충우돌 오리무중 몸과 정신이 바쁩니다 ㅠ_ㅠ
VS의 폼디자이너에서는 DateTimePicker 에 대해 더블클릭시 기본적으로 ValueChanged 라는 이벤트로 연결해주기 때문에
DateTimePicker 으로 특정 값을 검색해서 조회하는 폼등을 만들경우에 의심없이 ValueChanged 를 많이 쓰는데요..
다음과 같은 문제가 있습니다.
- ValueChanged 라는 이벤트가 콤보박스에서 드랍다운 달력이 뜨고나서 선택할 값을 찾기 위해 연도나 달을 변경하더라도 계속적으로 발생합니다.
- dateTimePicker.Text = "2010-07-25" 와 같이 프로그램상에서 값을 변경하더라도 발생합니다.
이벤트중에 CloseUp 이란 이벤트가 있습니다. 이것을 쓰시면, 달력에서 날짜를 최종 선택하고 달력이 닫히기전에 호출됩니다.
그래서, 위의 1번에서처럼 중간에 날짜를 찾는다고 이동하더라도 이벤트가 발생하지 않고 로직처리를 위해서 값을 직접 변경하더라도 이벤트가 발생하지 않습니다.
이벤트가 정말 다양합니다만 너무 다양해서 -_- 항상 적용하는데 우여곡절이 많네요.
ps. 좌충우돌중에 뮤텍스나 세마포어를 사용하는 것도 시도해보고 했지만 쉽지도 않고
문제가 제대로 해결되지도 않았습니다.
이벤트와 관련된 문제는 역시 이벤트로 푸는게 가장 정석인거 같습니다.