CreateDialog API함수를 이용해서 띄운 윈도우 폼에서는 기본적으로 ESC를 누르면 창이 닫힌다.
하지만 윈폼에서 만든 다이얼로그는 닫히지 않는다.
닫히게 하기 위해서 할 일은...
1. 폼의 프로퍼티중 KeyPreview = true로 변경(기본값: false)
2. KeyDown이나 KeyPress 이벤트 핸들러를 작성
KeyDown이라면...
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
}
KeyPress라면..
private void Form_KeyPress(object sender, KeyPressEventArgs e)
{
const char ESC_KEY = (char)Keys.Escape;
if (e.KeyChar == ESC_KEY)
{
this.Close();
}
}
KeyPress에서는 KeyChar라는 프로퍼티타입이 char이기 때문에, char타입의 상수로 정의해서 사용을 했다.
닷넷에 미리 정의된 Keys라는 열거타입은 ASCII의 제어문자 27과 동일하다.
두 개의 핸들러가 동시에 정의 되어 있으면 KeyDown이 KeyPress보다 호출이 되는 것을 확인했다.
'Programing > 닷넷' 카테고리의 다른 글
[C#] DateTime.Now 분석 (0) | 2013.11.28 |
---|---|
[ASP.net] MVC 2 (0) | 2013.01.28 |
애플리케이션 설정(app.config) (0) | 2013.01.10 |
ObjectDumper (0) | 2013.01.10 |
Microsoft Chart Controls (차트컨트롤) (0) | 2013.01.10 |