【问题标题】:Form keyPress help表格键按帮助
【发布时间】:2011-04-03 21:06:45
【问题描述】:

首先,我需要一种方法来知道控制键何时按下,这是链接:Form keyDown not working?

感谢他们,我得到了它的工作。但我注意到这不是我的最终目标! 我不想在 keyDown 上检查控制键,而是在 keyPress 上检查它。但显然我不能使用

    If e.Control Then

    End If

Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress

End Sub

方法。

有什么想法吗?我还想检查何时不再按下该键...


新问题:

 Private Sub controlTick(ByVal sender As Object, ByVal e As EventArgs)
        If Control.ModifierKeys = Keys.Control Then
            controlActivated = True
            PictureBox2.Invalidate()
        End If
        If Control.ModifierKeys <> Keys.Control Then
            controlActivated = False
            PictureBox2.Invalidate()
        End If
        Label1.Text = controlActivated
    End Sub

那是在一个计时器里面。出于某种原因,它总是“假”,除非我在按下控制键的情况下单击某处...

【问题讨论】:

标签: vb.net winforms visual-studio


【解决方案1】:

当您收到 KeyPress 事件时,当表单有任何控件时您不会收到该事件,Control 键状态已应用于按下的键。所以你会得到,比如说,Ctrl+V:

Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
    If e.KeyChar = ChrW(22) Then
        MessageBox.Show("Ctrl+V pressed")
    End If
End Sub

Ctrl+A = 1 等,通过 Ctrl+Z = 26。这非常可能是您想要做的,您也可以使用 Control.ModifierKeys 属性:

    If Control.ModifierKeys = Keys.Control Then
        MessageBox.Show("Control key pressed")
    End If

请注意,许多键不会生成 KeyPressed 事件,例如 Ctrl+F1。需要 KeyDown 来测试它们。


您应该在受控制键是否按下影响的任何操作中使用 Control.ModifierKeys。此计时器的 Tick 事件处理程序工作正常:

Private Sub timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
    Dim controlActivated As Boolean
    If (Control.ModifierKeys And Keys.Control) = Keys.Control Then
        controlActivated = True
    End If
    Label1.Text = controlActivated.ToString()
End Sub

【讨论】:

  • 我只需要知道何时按下控制键(控制键)。你看,我的用户在界面上点击了很多,如果用户按下控制键,我想创建一个不同的效果。
  • 在受键是否关闭影响的任何代码中使用 Control.ModifierKeys。不要不要使用 KeyPress 事件。
  • 谢谢!但现在我遇到了一个小问题......编辑了问题的底部。
  • 我会再试一次,更新后。祝你好运。
  • 我想知道...检查是否没有按下控制键是否正确? 如果 Control.ModifierKeys Keys.Control
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-21
  • 2011-06-04
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多