블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
        다음 메쏘드를 이용하여 알아내면 됩니다.
       
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
       

        사용법은 아래 소스코드를 보시고 이해 하시면 될것 같네요..

       
        동시 키 눌림
은 아래와같이 OR (|) 연산자를 이용하시면 되는데..
        간혹 Ctrl + C, Ctrl + V, Ctrl + X 등이 캐치 되지 않는 경우가 있습니다.

        그럴경우는 툴박스나, 메뉴바, 컨텍스트메뉴 (마우스 오른쪽메뉴) 에서 해당 숏컷이 등록되어 있는지 확인하시고,
        등록이 되어 있다면, 해당 숏컷에 이벤트를 등록 해 주시면 됩니다.


        메소드를 보시면 제일 마지막에 
       
        return base.ProcessCmdKey(ref msg, keyData);
       

        이런 부분이 있습니다.

        저 부분이 다음 이벤트로 이벤트를 넘겨주는 역할을 하게 되는것이죠..

        즉 ProcessCmdKey 가 받은 이벤트를 오버라이딩하여 우리가 원하는 코드를 넣었으니,
        다시 원래 가야할 길로 보내주는겁니다.

        KeyDown 이나.. 그 전에 어떤 이벤트 핸들러가 있다면 그쪽으로 넘어가겠죠..;;;
        정확한 내용은 찾는데로 업뎃하겠습니다..


        예제 소스를 보시면 쉽게 이해가 되시리라 믿습니다.



        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            switch (keyData)
            {
                case Keys.Down:
                case Keys.Up:
                case Keys.Right:
                case Keys.Left:
                case Keys.Control | Keys.Down:
                case Keys.Control | Keys.Up:
                case Keys.Control | Keys.Right:
                case Keys.Control | Keys.Left:
                    // 방향키, 혹은 컨트롤키 + 방향키가 입력되었을때
                    // 처리, 혹은 다른 메쏘드 호출을 여기에 적어주시면 됩니다.
                    break;

                case Keys.Control | Keys.X:
                    // 잘라내기 (Ctrl + X)
                    // 처리, 혹은 다른 메쏘드 호출을 여기에 적어주시면 됩니다.
                    break;

                case Keys.Control | Keys.C:
                    // 복사하기 (Ctrl + C)
                    // 처리, 혹은 다른 메쏘드 호출을 여기에 적어주시면 됩니다.
                    break;

                case Keys.Control | Keys.V:
                    // 붙여넣기 (Ctrl + V)
                    // 처리, 혹은 다른 메쏘드 호출을 여기에 적어주시면 됩니다.
                    break;

                default:
                    break;
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }


반응형

'Programming > C#' 카테고리의 다른 글

DataGridView to XML  (0) 2011.03.23
ToolTip 사용하기  (0) 2011.02.11
[펌] 외부 응용프로그램 실행하기 (Process.Start 메서드) - CMD  (0) 2011.01.13
sendmessage in C#  (1) 2010.12.27
C# SendMessage Keypress  (1) 2010.12.26
Posted by blueasa
, |