如何在vbnet中创建按钮快捷方式

时间:2016-04-16 08:52:16

标签: vb.net

我尝试为我的按钮创建键盘快捷键。

这是我的代码

 Private Sub form_main_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
    If Keys.ControlKey + Keys.N Then
        'btn_add.PerformClick()
        addentry()
    ElseIf Keys.ControlKey + Keys.E Then
        'btn_edit.PerformClick()
        editentry()
    End If
End Sub

问题是即使我按下其他按钮仍然会调用该功能。我也尝试使用表单keydown属性,但结果仍然相同。

其他信息:

  • 函数addentryeditentry只会调用form_addedit
  • btn_add将致电addentry
  • btn_edit将致电editentry

2 个答案:

答案 0 :(得分:2)

首先,Keys.***只是一个枚举。其中的每个条目只是一个代表密钥代码的数字。所以你现在只是在一起添加数字。

Keys.ControlKey为17,Keys.N为78,所以你写的是:

If 17 + 78 Then

总是返回True,因为它大于0。

要执行您的要求,您必须通过检查传递给事件的事件参数(EventArgs)来检查按下了哪个键。

但是,由于您使用的是KeyPress事件,因此无法从事件参数中获取密钥枚举,因此我建议您改为使用KeyDown事件。

Private Sub form_main_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    If e.Control = True AndAlso e.KeyCode = Keys.N Then
        addentry()
    ElseIf e.Control = True AndAlso e.KeyCode = Keys.E Then
        editentry()
    End If
End Sub

答案 1 :(得分:1)

如果您在按钮的.Text属性中放置&符号,Alt +键将触发按钮,例如 B& utton1 将使用Alt + u激活。