본문 바로가기

C#

Key 이벤트 순서 및 처리

그리드 내부에서 숫자 혹은 특수문자를 입력이 되지 않는 문제가 발생하였다.
Key와 관련한 이벤트를 찾아보니 KeyDown 이벤트,  KeyPress 이벤트, KeyUp 이벤트가 있었다.
Key 이벤트가 발생되는 순서는 KeyDown -> KeyPress -> KeyUp 이벤트 순으로 발생된다.

KeyDown 이벤트는 보통 Enter Key 처리 혹은 방향키 조작을 처리하기 위해 구현하였다.

KeyPress 이벤트는 각각의 숫자 혹은 문자 키를 따로 처리하기 위해 구현하였다.

KeyDown -> KeyPress -> KeyUp 이벤트 순서로 처리 되기 때문에 만약 KeyDown에서만 로직을 처리해야하는 경우라면 e.Handle = true를 추가하면 KeyPress 이벤트가 발생하지 않는다.