2013-04-11 6 views
1

바로 가기 키를 잡으려고합니다. KeyDown Events의 관리 방법에 대한 설명이 필요합니다. 이를 예로 들어 보겠습니다.Keydown 이벤트 이상한 행동

Private Sub SoldeOuvertFou_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown 

    If e.Control And e.KeyCode = Keys.W Then 
     MessageBox.Show("Ctrl+W") 
     End If 

    If e.Control And e.KeyCode = Keys.F5 Then 
      MessageBox.Show("Ctrl+F5") 
     End If 

    End Sub 

완벽하게 작동합니다. 첫 번째 언론이든 두 번째 프레스 언론이든간에 누구나 MessageBox이 팝업됩니다. 지금은 단순히 서브 내부의 순서를 변경하는 경우 :

Private Sub SoldeOuvertFou_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown 

    If e.Control And e.KeyCode = Keys.F5 Then 
      MessageBox.Show("Ctrl+F5") 
     End If 

    If e.Control And e.KeyCode = Keys.W Then 
     MessageBox.Show("Ctrl+W") 
     End If 

    End Sub 

를이 방법 만 Ctrl+F5 팝업을 것입니다. Ctrl+W을 표시 할 방법이 없습니다 ... 어떤 이유입니까?

+1

이 두 경우 모두 나를 위해 작동합니다. 각 줄의 값을보기 위해 단계별로 디버깅을 시도 했습니까? – SysDragon

+0

@SysDragon weird .... – phadaphunk

+1

나에게 잘 어울립니다. 나는 둘 다 테스트했고 예상대로 작동합니다. – dbasnett

답변

0

당신은 간단하게 사용할 수 있습니다

If e.Control Then 

    If e.KeyCode = Keys.F5 Then 
     MessageBox.Show("Ctrl+F5") 
    Else 
     If e.KeyCode = Keys.W Then 
      MessageBox.Show("Ctrl+W") 
     End If 

    End If 

End If 
+1

왜 다른 옵션이 아닌 하나의 옵션이 작동하고 있습니까? ? – phadaphunk