如何阻止空格键单击按钮

soc*_*ose 2 vb.net button motorola visual-studio-2008

我正在使用 VS 2008。在 Windows 或智能设备项目中,当按钮当前具有焦点时按空格键将导致单击该按钮并引发Click事件。是否有任何属性或设置会导致它跳过它,以便空格键不会导致按钮单击?

Joh*_*ner 5

您可以使用 Form 的 KeyPreview 属性和 KeyDown 事件在空格键传递给按钮之前捕获空格键,如果按钮具有焦点,那么您可以标记按键处理以防止它冒泡:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MessageBox.Show("Button Clicked")
End Sub

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

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    If e.KeyCode = Keys.Space And Button1.Focused Then
        e.Handled = True
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)