捕获按键/让用户选择自己的启动/停止键

时间:2011-10-29 19:35:34

标签: vb.net

目前,我的vb.net应用程序的启动键是硬编码的,如下所示:

GetAsyncKeyState(Keys.F2)

鼠标悬停时vb.net sais“F2 As System.Windows.Forms.Keys = 113”

但我希望我的用户能够选择自己的密钥。如果我制作一个下拉框(组合框)并在那里预先定义一些选择(如ESC或F3),那么所有这些选择都是字符串。如何将这些字符串转换为System.Windows.Forms.Keys整数?

另外,我希望它也可以“捕获”一个按键。所以他们点击“捕获”按钮,他们点击的下一个键将保存为开始/停止按钮。但我甚至不知道从哪里开始寻找那个。

2 个答案:

答案 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值之间进行转换。