본문 바로가기
개발언어/C#.NET

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

by 엔돌슨 2011. 6. 24.
반응형

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);
}