2014-09-13 93 views
0

我想趕上keydown事件,所以當我按CTRL + W它將關閉窗體。 目前我的代碼:按下Ctrl + W wil觸發按Ctrl + Shift + W winForms

Private Sub Main_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown 
    If e.Control AndAlso e.KeyCode = Keys.W Then 
     closeForm() 
    End If 
End Sub 

的代碼只是工作正常,當我按CTRL + 任何 + W¯¯(例如CTRL + SHIFT + W¯¯)也將返回true並執行closeForm()方法。

如何防止CTRL +任何+W¯¯任何想法?

回答

1

使用e.KeyData屬性:

If e.KeyData = (Keys.Control Or Keys.W) Then 

這將排除按Ctrl +W¯¯其他所有組合。如果你想做到這一點更喜歡你有什麼已經那麼這將是:

If e.Control AndAlso Not e.Shift AndAlso Not e.Alt AndAlso e.KeyCode = Keys.W Then 

正如你可以看到,使用e.KeyData更乾淨尋找一個特定的組合鍵時。