2016-08-25 3 views
0

VB.NET에서 여러 키 스트로크를 읽는 데 도움이 될 수 있습니다. 예를 들어, Ctrl + P + H 키 조합을 읽고 싶습니다. 아래 코드와 유사하지만 시도하지 않았습니다. 귀하의 게시물을 읽고VB.NET의 키 조합

if e.control=true and e.keycode=keys.P and e.keycode=keys.H then 
end if 
+0

한 번에 두 개 이상의 비 수정 키가 눌러집니다. 왜 그런 짓을하고 싶니? 실제로 해결하려고하는 문제에 대한 더 나은 해결책이 있다는 것을 내기 할 것입니다. 내가 틀린 경우 여러 이벤트를 처리하고 특정 시퀀스에서 발생했는지 또는 여러 API 호출을 수행하는지 결정해야합니다. – jmcilhinney

+0

컨트롤 키는 수정 자 키입니다. 여기 예제를 참조하십시오 : http://stackoverflow.com/questions/4442805/vb-net-key-combination – minimalist

답변

3

확인 형태를 keyDown에서 ... 일을 내가 이해할 수있는,이 같은 트릭을 할해야합니다에서.

Public Class Form1 
Dim keyCombo As New List(Of Keys)({Keys.ControlKey, Keys.H, Keys.P}) 
Dim currentKeys As New List(Of Keys) 

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown 
    currentKeys.Add(e.KeyCode) 

    If currentKeys.Intersect(keyCombo).Count = keyCombo.Count Then 
     MessageBox.Show("CTRL + H + P Has Been Pressed....") 
     currentKeys.Clear() 
    End If 

End Sub 

Private Sub Form1_KeyUp(sender As Object, e As KeyEventArgs) Handles Me.KeyUp 
    currentKeys.Remove(e.KeyCode) 
End Sub 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Me.KeyPreview = True 
End Sub 

End Class 

당신은 질문이있는 경우에는 저에게 알려 주시면는, 그러나 이것은 당신의 방법 :) 잘 진정으로 당신을 얻을해야 그들에게 대답하기 위해 최선을 다할 것입니다

을 감지하는 간단한 방법은 없습니다
+1

글쎄, 아주 특별한 해결책이었습니다. 좋은! –

+1

@VisualVincent Cheers :)이 함수는 보통'if e.keycode = '에 비해 항상 사용되었습니다. – Werdna

+1

키 조합을 처리하기 위해 대부분'ProcessCmdKey' 함수를 재정의합니다. 나는 이유를 모르지만 표준'KeyDown/KeyPress/KeyUp' 이벤트보다 더 좋아합니다. –