2014-03-02 2 views
0

저는 최근에 VB를 배우기 시작했는데, 그 방법에 익숙해 지려고합니다. 여기 키를 누를 때마다 키 코드를 콘솔에 쓰려고합니다.KeyDown에 Enter key를 입력하십시오.

Private Sub kd(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    Console.WriteLine(e.KeyCode) 
End Sub 

키의 대부분이 작동하지만 이상하게도 내가 얻을 수 가 작동를 입력합니다. 내가 알아챈 한가지는 언제든지 누를 때입니다. 을 입력하십시오. 또한 양식에있는 버튼 중 하나를 "클릭"했습니다.

여기 무슨 일입니까?

+0

는 당신이 폼의 KeyPreview 속성을 True로 설정 함 입력 할 할은? – jmcilhinney

+0

@jmcilhinney - 그랬어. –

답변

0

Shift, Enter, Tab, Escape와 같은 키는 특수 키입니다. 그들은 조금 다른 명령이 필요합니다.

Private Sub Form2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress 
    If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Enter) Then 
     MsgBox("Success!") 
    End If 
End Sub 

그리고 그 버튼에 초점을 맞 춥니 다. SetFocus 컨트롤을 사용하여 포커스를 설정하십시오.

완벽하게 작동해야합니다.

+0

어떻게 포커스를 폼에 설정합니까? 나는'Me.Focus()'를 시도했지만 버튼은 여전히 ​​포커스를 받는다. –

+0

활성 컨트롤 속성 알아보기 - http://msdn.microsoft.com/en-us/library/system.windows.forms.containercontrol.activecontrol.aspx –

+0

감사합니다. –

0

사용자 여러분의 컨트롤 키 다운 이벤트와 확인 키

Private Sub kd(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    IF e.key=key.Enter Then 
     <do your code> 
    Endif 
End Sub 
관련 문제