출처 : http://trudy.kr/31


기존엔 단축키를 만들 때 키 다운이나,

글로벌 후킹을 해서 사용했었는데 아래 코드가 있었다.


궁금해서 테스트 해봤는데,

아래 코드를 해당 콘트롤들 모두에 오버라이드 시키고 실행하면 

포커스된 콘트롤에서만 작동하더라.


아래는 소스와 프로젝트.


testwinform.7z




protected override bool ProcessCmdKey(ref Message msg, Keys keyData)

{

    Keys key = keyData & ~(Keys.Shift | Keys.Control);

 

    switch (key)

    {

        case Keys.F:

            if ((keyData & Keys.Control) != 0)

            {

                MessageBox.Show("winform");

                return true;

            }

            break;

        case Keys.F5:

            MessageBox.Show("f5");

            return true;

            break;

    }

    return base.ProcessCmdKey(ref msg, keyData);

 

}



Posted by motolies
,