【问题标题】:How I Can Create a Keyboard shortcut to a Button?如何为按钮创建键盘快捷键?
【发布时间】:2019-09-20 22:38:06
【问题描述】:

我想使用键盘键来创建 Button1 的键盘快捷键:

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Toggle = Toggle + 1
    If Toggle = 1 Then
        Timer1.Start()
        Button1.Text = "Toggle Off"
    Else
        Timer1.Stop()
        Toggle = 0
        Button1.Text = "Toggle On"
    End If

定时器1功能:

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    Randomize()
    Dim rnd As New Random
    Dim minval As Integer
    Dim maxval As Integer

    minval = 1000 / TrackBar1.Value
    maxval = 1000 / TrackBar2.Value

    Timer1.Interval = rnd.Next(maxval, minval)

    If MouseButtons = MouseButtons.Left Then
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    End If
End Sub

【问题讨论】:

  • Timer1 是做什么的?像Button1.Text = If(Button1.Text = "Toggle On", "Toggle Off", "Toggle On") 这样的东西还不够吗?
  • 按键绑定是什么意思?
  • Timer1 是一个 MouseEvent,“Autoclicker”
  • @AhmedAbdelhameed 这是定时器 1:prnt.sc/p8wqwc
  • @LeRegedit 请添加任何相关代码into the question(作为格式化文本,而不是图像)并尝试准确解释您想要实现的目标。请注意,您想要实现的目标和您想要实现的目标可能是两件不同的事情。我们需要知道前者。

标签: vb.net winforms


【解决方案1】:

I didn't read the whole thread, but I think, you will find some more information here.

基本上你需要做这些步骤:

  1. 捕捉系统或应用程序级别的按键事件
  2. 检查按下了什么键
  3. 如果按下应该用作快捷方式的键,请调用按钮的单击处理子

以 Form Keydown 事件为例,使用快捷键“a”调用按钮“LeButton”(按下键“a”时) (此示例不起作用,因为 MyBase.KeyDown 不是应用程序范围的事件,但它可能会对您有所帮助)

Public Sub form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown   
   If e.KeyCode = Keys.A Then
      LeButton_Click()
   End If
End Sub

Public Sub LeButton_Click(sender As Object, e As EventArgs) Handles LeButton.Click
     MsgBox("This is a Message Box")
End Sub

【讨论】: