C# 단축키 구현 ProcessCmdKey 사용한 override

2011.06.24 11:22 개발언어/C#.NET

C# 단축키 구현


C#의 form에 단축키를 구현하는 방법입니다. ProcessCmdKey 이벤트를 override 하여 구현할 수 있습니다. C# 단축키 구현은 ctrl, shift 등의 키를 동시에 눌러서 구현하기 때문에 키값 조합으로 구현됩니다. 아래의 예제는 아주 간단한 단축키를 구현한 예입니다.


/// <summary>
/// 메인폼 단축키 지정
/// </summary>
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, Keys keyData)
{
    Keys key = keyData & ~(Keys.Shift | Keys.Control);

    switch (key)
    {
    case Keys.B: // 쪽지보내기
        if ((keyData & Keys.Control) != 0)
        {
        rosterControl.SmsSend();
        return true;
        }
        break;
    case Keys.G: // 대화하기
        if ((keyData & Keys.Control) != 0)
        {
        rosterControl.somebodyTalk(msg);
        return true;
        }
        break;
    case Keys.F5:
        //MessageBox.Show("f5");
        return true;
        break;
    }

    return base.ProcessCmdKey(ref msg, keyData);
}
신고
  1. BlogIcon 김정민비밀방문자
    2017.11.13 14:30 신고 edit/del reply

    소스에서 변수 restor로 시작되는 변수들은 어디에서 사용되는 변수들인지 좀 알고 싶네요. Form의 첫 멤버변수 선언 시에 선언만 해 놓는 것인지 아지면 ShortcutKey랑 관련있는 Window Form안에 선언되어 있는 내장 멤버 변수인지