目前,我的vb.net应用程序的启动键是硬编码的,如下所示:
GetAsyncKeyState(Keys.F2)
鼠标悬停时vb.net sais“F2 As System.Windows.Forms.Keys = 113”
但我希望我的用户能够选择自己的密钥。如果我制作一个下拉框(组合框)并在那里预先定义一些选择(如ESC或F3),那么所有这些选择都是字符串。如何将这些字符串转换为System.Windows.Forms.Keys整数?
另外,我希望它也可以“捕获”一个按键。所以他们点击“捕获”按钮,他们点击的下一个键将保存为开始/停止按钮。但我甚至不知道从哪里开始寻找那个。
答案 0 :(得分:2)
If txtKeys.Text=="F3" Then
GetAsyncKeyState(Keys.F3)
End If
答案 1 :(得分:1)
尝试这样的事情:
Public Class Form1
Dim captureKey As Boolean
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
captureKey = True
End Sub
Private Sub Button1_PreviewKeyDown(sender As Object, e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles Button1.PreviewKeyDown
If captureKey Then
Label1.Text = e.KeyValue.ToString
captureKey = False
End If
End Sub
End Class
我创建了一个带有标签和按钮的表单作为示例。 e。KeyValue是一个整数,我将其转换为字符串以供显示。您还可以捕获其他keydata。请参阅PreviewKeyDownEventArg
上的此信息至于问题的第一部分,请使用Select Case语句在ComboBox值和KeyData值之间进行转换。