본문 바로가기

ETC Programmings

[C#] 엔터키 이벤트 만들기..

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

이벤트 처리기는 알아서 비주얼 프로그래밍으로 해결을 할 수 가 있다.. 단순히 도구 상자에서 버튼이나 여타 개체들을 선택해서 폼 위에 올려 놓고.. 원하는 개체들로부터 이벤트를 만들어 낼 수 있다.

하지만.. -_-;; 보통은 어느 웹사이트던지 간에.. 아이디와 비번을 입력하고 엔터키를 꽉 누질러주면 자동으로 로그인이 된다. 궃이 로그인 버튼을 누르지 않더라도.. <FORM> 태그에 있는 Submit 형식의 버튼이 자동으로 눌리는 듯하다. 근데 -_-; 윈도우 프로그래밍에는 그런게 있는지 없는지 일단은 가라로 배웠기 때문에 알수가 없다. 그래서 말인데.. 검색어를 입력을 하고 엔터를 치면.. 자동으로 검색이 되도록 하면 좋겠다고 생각했지만..

뭐.. 이건 뭐.. 다 모르겠다.. 뭐 엔터키에 대한 이벤트라고는 없고.. 클릭? 이라는 이벤트가 있기에 봤더니.. -_-; 전혀 엔터키랑은 관계 없다. 단지 마우스 리액션 만으로 처리를 하기때문에 크게 도움이 되지 않았다.

그래서 말인데.. -_-.. 왠지 수상한 이름을 가진 녀석이 있더라... 그건이 바로 .. KeyDown 이라는 이벤트 인데.. 요놈이 알고봤더니 특정 키를 말하는 것이었다. 그래서 만든게 바로 요것이다 >ㅅ</


        private void newText_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                button1_Click(sender, e);
        }

머.. sender 객체와 e 객체에 관해서는 뭐 알길이 없으나.. 대충.. 여러가지로 이벤트에 대해서도 추가적으로 옵션을 줄 수 있구나.. 정도로 생각하고 있다. KeyEventArgs 이니까 -_-;;

여튼 저기를 보시라! KeyEventArgs 클래스의 객체인 e 로부터 KeyCode 의 값을 읽어내는 함수를 작성했다. 미리 만들어 놓았던 버튼을 눌렀을때의 이벤트 함수를 호출해 주도록 해놓았다. 어떤 키값이 눌리는지 확인하는 방법은 저 e 객체의 KeyCode 값의 변화를 가지고 살펴볼 수 있었다. 저 KeyCode의 값이 어떤 형식으로 저장이 되어 있는지는 모르겠지만. Keys라는 클래스 안에 왠만한 키들은 모두 들어가 있다. 스태틱 변수이니까 객체를 생성할 필요 없이 그냥 써주면 되겠다.

일련의 모든 윈도우 프로그램들도 저런방식으로 단축키 기능을 수행하지 않는가 싶다... 단축키들을 만들어주는 행위 자체도 저 Keys 라는 클래스가 있다면 크게 문제될것이 없겠다.