2016-03-15 31 views
2

我想在VB.net中創建Shift + F5按鍵事件。我用這段代碼在vb中創建Shift + F5事件,但它不起作用。如何在vb中創建Shift + F5事件

Private Sub IBR_SJK_P110_000_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown 
    Select Case e.Modifiers 
     Case Keys.Shift 
      If e.KeyCode = Keys.F5 Then 
       MsgBox("Shift F5 Pressed") 
      End If 
    End Select 
End Sub 

但是,如果我使用

If e.KeyCode = Keys.A Then 

比它運作良好。

請幫幫我。

+0

你爲什麼不嘗試使用一些API函數?像GetAsyncKeyState?當然,它不會工作..因爲你首先發射一個按鈕像Shift,然後F5.Second fire case不會被捕獲... –

+0

謝謝你的建議。但我如何使用它。我從來沒有使用過它。 – ZearaeZ

+0

這是我在之前指定的API的聲明.... http://www.pinvoke.net/default.aspx/user32.getasynckeystate –

回答

2

這是一個例子:

If e.KeyData = (Keys.F5 and Keys.Shift) Then 
       MessageBox.Show("got here") 
End If 
+0

這不適用於'KeyDown'事件。另外,按鍵要用''And'而不是'+'來組合。 –

+0

是的,你是對的..誰說了一些關於「關鍵」。這是一個例子 –

+0

可能是因爲OP使用KeyDown事件 –

1

你可以嘗試的另一件事情是這樣的:

If e.Shift = True AndAlso e.KeyCode = Keys.F5 Then 
    MsgBox("Shift F5 Pressed") 
End If 

e.Modifiers屬性似乎對某些計算機被竊聽/一些鍵盤...