【问题标题】:Windows form hotkeysWindows 窗体热键
【发布时间】:2017-02-17 12:32:07
【问题描述】:

我正在尝试在表单上使用热键来隐藏/显示文本框,尝试了很多方法,在阅读了 thread 之后,我这样做了:

If Control.ModifierKeys = Keys.B Then
    If TextBox1.Visible = True Then
        TextBox1.Visible = False
    Else
        TextBox1.Visible = True
    End If

和:

If Control.ModifierKeys = Keys.B Then
    If TextBox1.Visible = True Then
        TextBox1.Hide()
    Else
        TextBox1.Hide()
    End If
End If

但还是不行……请帮帮我

【问题讨论】:

  • Control.ModifierKeys 怎么可能等于 Keys.B?修饰键是 Ctrl、Shift 和 Alt。

标签: vb.net visual-studio


【解决方案1】:

首先你需要设置表单属性

KeyPreview = True

然后使用表单 KeyDown 事件

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
    If e.KeyCode = Keys.B Then TextBox1.Visible = Not TextBox1.Visible
    End Sub

如果你想使用 ALT 或其他组合,你也需要检查修饰符

  Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
        If CBool(e.Modifiers And Keys.Alt) AndAlso e.KeyCode = Keys.B Then TextBox1.Visible = Not TextBox1.Visible
  End Sub

如果你想做很多,那么使用 select case 语句

  Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
        Select Case e.KeyCode
           case  Keys.B : TextBox1.Visible = Not TextBox1.Visible
           'etc
        End Select
  End Sub

【讨论】:

  • 很高兴听到这个消息。记得接受答案。如果您需要检查修饰符的组合并且无法弄清楚,请不要犹豫。
猜你喜欢
  • 2011-01-29
  • 2011-03-19
  • 1970-01-01
  • 2014-12-23
  • 2020-11-02
  • 2021-10-02
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多