2014-09-13 74 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更干净寻找一个特定的组合键时。