VB:如何为计时器/按钮设置快捷键

问题描述 投票:-1回答:2

我如何设置计时器/按钮的快捷键,基本上,我有两个计时器事件,一个Timer.Stop和Timer.Start。单击切换的功能(开始/停止)时,我想创建一个快捷键。请帮助,我真的很需要它。

vb.net keyboard-shortcuts key-bindings
2个回答
1
投票

这里是一种捕捉Enter键的方法。您应该能够扩展该概念以实现您想要的。

Public Class Form1
    Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress
        If e.KeyChar = Convert.ToChar(13) Then
            MsgBox("You pressed Enter")
        End If
    End Sub
End Class

玩得开心!


这里有一项编辑可以帮助您处理表单:

假设您有一个主表单(“外部表单”),其中包含一个“子”窗口。我说“孩子”,但与继承无关,它们只是形式。

现在,即使焦点放在“子”窗体上,您也希望“主”窗体抓住按键。这是一种忍者般的方式来完成此任务。它具有简单的品质,但不是最优雅的。尽管如此,它仍将按预期工作。

在“主”表单中,您需要以一种可以使用它的事件和公共事件的方式来跟踪“子”表单:

Public Class Main
    'modal variable to keep track of the child form
    Private WithEvents _childForm As Form

    'the rest of your main class goes here
End Class

我不知道您是否只有一个或多个子窗体,因此,如果您有多个子窗体或数量不定,则可以考虑使用列表:

Private _childFormsList As New List(Of Form)

现在,每次打开表单时,您都必须更新主表单中的模态变量(我将假设您一次只有一个子Form来使事情变得容易):

_childForm = New ChildFormClass()
_childForm.Show()
'or whatever you're doing with the Form

现在,从之前回到此行:

Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress

并从子表单中添加相关事件:

Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress, _childForm.KeyPressed

现在,此事件将同时触发两种形式。不过,您应该重命名Sub,因为不仅会触发Form1(主Form,无论您使用什么名称,它都将触发)。

如果您有其他问题,我会不时闲逛。


0
投票

http://vb.net-informations.com/gui/key-press-vb.htm

有关更多按键事件。请阅读给定链接中有关按键如何工作的指南。

© www.soinside.com 2019 - 2024. All rights reserved.