【问题标题】:Get Key Pressed in Variable - Visual Studio Basic 2017在变量中按下键 - Visual Studio Basic 2017
【发布时间】:2020-04-28 19:15:33
【问题描述】:

我正在尝试制作一个简单的程序,将您在文本框中编写的任何内容粘贴到其中。我在 Visual Studio 2017 中执行此操作。它是一个带有 Visual Basic 的 Windows 窗体应用程序。它在当前状态下工作,但我想添加自定义密钥的功能。现在,当您按 F12 时,它会发送消息。我想要一种简单的方法来询问用户一个键,在他按下它之后,它被设置为新的粘贴键。知道我怎么能做到这一点吗?提前致谢。

我的代码在下面,我有 Keys.F12 我有/想要一个变量来保存用户设置的密钥。

Dim hotkey As Boolean
hotkey = GetAsyncKeyState(Keys.F12)
If hotkey = True Then
SendKeys.Send(TextBox1.Text)
End If

【问题讨论】:

  • 为什么不使用弹出窗口?
  • 您应该处理KeyDown 事件。然后密钥包含在e.KeyCode 属性中。理想情况下,您需要一个组合键,在这种情况下,您将使用 e.KeyData 属性。
  • “它被设置为新的粘贴键” - 我没有明白这个逻辑。
  • 是的,但是@yoss 怎么样? @LinuX Man 我通过按一个按钮将 Stuff 粘贴进去。我这样做是为了有一些我需要的东西(比如第二个 CTRL+C 和 CTRL+V),我想更改按钮,也许有一个弹出窗口,所以我可以用我想要的任何按钮粘贴一些东西(我可以改)

标签: vb.net visual-studio


【解决方案1】:

我猜这就是你要找的东西:

Private myNewKey As Char

Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
    If e.KeyChar = Convert.ToChar(myNewKey) Then
        e.Handled = True ' to prevent getting the Press Key to be entered  
        TextBox1.Text = Clipboard.GetText
    End If
End Sub

Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress
    myNewKey = e.KeyChar
    Label1.Text = "New paste key set to: " + e.KeyChar.ToString
End Sub

每次用户根据自己的意愿更改粘贴密钥时,此程序都会更改粘贴密钥。只需简单地声明一个包含新指定键的变量,当用户被要求输入新的按键时,应该将变量分配给它。

最终,当用户点击同一个键时,TextBox1 KeyPress 事件将被触发,TextBox 的文本将由Clipboard.GetText 设置。

键设置为 5,当用户在 TextBox1(第二个框)的焦点上点击该键时,文本将被粘贴。

【讨论】:

  • 是的!非常感谢,我正在寻找这样的东西,它在我的程序中效果很好!
【解决方案2】:
If e.KeyCode = Keys.F12 Then
SendKeys.Send(TextBox1.Text)
End If

【讨论】:

    猜你喜欢
    • 2022-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多