【问题标题】:VB: How I Can Set a Key Shortcut for a Timer/ButtonVB:如何为计时器/按钮设置快捷键
【发布时间】:2020-02-23 04:05:46
【问题描述】:

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

【问题讨论】:

    标签: vb.net keyboard-shortcuts key-bindings


    【解决方案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)
    

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

    _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(主窗体,无论您如何命名)。

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

    【讨论】:

    • 基本上主要的表单是一个菜单,它有一个加载其他表单的面板。 Keyshortcut 在 MainMenu 表单中完美运行,但加载到面板的其他表单却不能。请帮我解决,如果你帮助我,我什至可能会付钱给你
    • @LeRegedit 不需要钱。你对编程有多好?我要对初学者和专业人士说话的方式不同。
    • 我开始编程两周
    • @LeRegedit 我编辑了答案,以便为您提供更多工作。您只需要 2 周的培训就解决了一个困难的项目,因此您可能会遇到其他困难,但到目前为止,您似乎走在正确的道路上。祝你好运!
    • @laancelot 或者,如果您将此评论部分标记为版主,您可以要求将其移至chat,然后您可以在那里继续讨论。代表人数少于 20 人的用户。通常无权访问聊天,除非版主帮助将他们放在那里。
    猜你喜欢
    • 2016-06-11
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多