게임강의

비주얼베이직 keypreview

본문


새로운 폼을 하나 만들고 폼속성에 보면 keypreview라는 것이 있다. True 와 False를 선택할 수 있다.



 



이것이 무엇을 의미하나 ?  직접 해보면 그 의미를 알수 있으나 어떻게 직접해볼 방법도 접근시도조차



 



할 수 없는 것이 비베를 처음 대하는 사람들 아닐까 싶다. 



 



주석에 보면 Determines whether keyboard events for controls on the form are registered with the



 



form. 이라고 설명이 되어있다.  무슨 말이냐 하면 " 폼의 컨트롤에 대한 키이벤트를 폼에 등록할지



 



안할지를 결정한다" 라고 되어 있다.  사실 해석을 해도 뭔말인지 잘 모르겠다면 예를 들어 설명함.



 





 



이러한 윈도우폼과 버튼 컨트롤을 하나 만든다.



 



그런다음 아래와 같이 버튼클릭이벤트와 폼의 키다운 이벤트를 하나 만든다.



 



Private Sub Button1_Click(sender As Object, e As EventArgs)





        MsgBox("ok")





    End Sub





    Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown



       

        If e.KeyCode = Keys.F9 Then



 



            Me.Button1.PerformClick()





        End If



 



    End Sub



 



버튼을 클릭하면 "OK"라는 메세지를 나타내는 아주 간단한 구문이다.



 



그러나 이 구문을 실행한후 펑션키인 F9를 클릭해도 아무런 변화가 없다. 그러나 버튼을 클릭하면 정상적으로 메세지가 나타난다. 



 



그렇다면 그냥 F9를 눌러도 메세지를 나타내게 하고 싶다면 ?  그렇다  여기서 keypreview가 사용되어 진다.   위의 해석이 바로 이말인 것이다.



 





 



그림상의 keyrpeview 를  True로 바꾸면 폼실행후 F9만 눌러도 버튼컨트롤이 실행된다.



대부분 초기값은 false로 되어 있기 때문에 True로 꼭 전환해야 펑션키가 작동된다.



 



또는 코드상에서는 아래와 같이 해도 똑같은 역활을 하게 된다.



 





    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load



        Me.KeyPreview = True



    End Sub



 



즉 폼 로드시 바로 KeyPreview = True 로 만들어 버리는 것이다.


댓글목록 0

등록된 댓글이 없습니다.

최근글


새댓글


  • 등록자 벼배릅 등록일 04.14
알림 0