【问题标题】:Multiple Keyboard Shortcuts多个键盘快捷键
【发布时间】:2013-10-22 09:43:16
【问题描述】:

我正在使用以下代码尝试让 Ctrl+S 按下工具条按钮:

 Private Sub take_register_KeyDown(ByVal sender As Object, _
          ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown

    If e.KeyCode = Keys.S And Keys.Control Then
        ToolStripButton20.PerformClick()

    End If

End Sub

我是这方面的新手,所以我不懂数百万行编码,所以请你尽量简单:-)。

【问题讨论】:

  • 您知道您可以在设计器中简单地分配一个快捷键组合吗?否则,有什么问题?
  • 你有什么问题?

标签: vb.net keyboard keyboard-shortcuts multiple-instances shortcuts


【解决方案1】:

这里完全是猜测,因为没有实际问题。首先,为了获得类似的工作,您需要为表单设置KeyPreview = True。接下来,您可能想要使用KeyDown 事件而不是KeyPress

Private Sub Form1_KeyDown(...)
    ' when possible use AndAlso for speed and to avoid some errors in
    ' some situations.  if e.Control is False, the second part wont be evaluated.
    If e.Control AndAlso e.KeyCode = Keys.S Then

        ToolStripButton20.PerformClick()
    End If
End Sub

重复一遍:您可以简单地为设计器中的菜单对象分配一个快捷键组合,然后让 .NET 完成所有工作。 ...而且我不知道“多重”在哪里发挥作用,除非 Ctrl+S 以某种方式算作多重。

【讨论】:

  • 感谢您的回复,但它仍然没有做任何事情。您认为还有其他解决方案吗?
  • ToolStripButton20点击事件中是否有代码??它应该做什么?真正的代码需要一些东西来代替代码块中的...。将光标放在ToolStripButton20.PerformClick()上按F9,运行程序,看按Ctrl+S是否停止。
  • 对于点击事件的编码,我有:很多编码,除了它不允许我全部插入。当我按 F9 时,工具条按钮 20 出现一条红线
  • 红线是断点,VS中最强大的工具之一。代码到达那里时将停止执行。有 2 件:快捷键陷阱是否触发和 b) 如果是这样,菜单项单击可能写错了。您应该能够编辑自己的问题以添加重要的详细信息,例如点击事件中的内容。
  • 谢谢,我会试试的。
猜你喜欢
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多