728x90
특정 키를 눌러서 이벤트를 발생시킬때 Form의 이벤트에서 KeyDown을 찾아서
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Escape)
{
this.Close();
}
}
이러한 코드를 작성하면 될것이라는 생각을 하기 쉽습니다.
하지만 이코드는 원하는대로 작동하지 않습니다.
우리가 원하는대로 작동하게 하려면 해당 폼의 클래스에서 ProcessCmdKey를 오버라이딩 해야합니다.
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if(keyData == Keys.Escape)
{
this.Close();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
위와 같이 작성하고 ESC를 눌러보면 폼이 닫히는것을 볼수 있습니다.
확장(참고)
[C# 윈폼] 단축키 핫키 Hot Key 지정과 윈도우 전역 핫키 단축키 지정
출처: https://derveljunit.tistory.com/283 [Derveljun's Programming Log]
'개발언어 > C#' 카테고리의 다른 글
[C#] Dictionary<> foreach, for 루프 (0) | 2020.12.22 |
---|---|
[C#] ListView 선택시 레코드값 받아오기 (0) | 2020.12.22 |
[C#] 에서 마우스 휠 이벤트 발생시키기 (0) | 2020.12.11 |
[C#] 도구상자에 없는 MainMenu 버튼 추가하기 (0) | 2020.12.07 |
[C#] 내문서 경로 가져오기 (0) | 2020.11.30 |