VB GetAsyncKeyState,组合框选择键

时间:2016-01-10 09:56:33

标签: vb.net

当我按下用户选择的特定按键时,我尝试执行操作..但我不知道该怎么做。

有没有最简单的方法:

If ComboBox1.SelectedItem = "F8"
    If GetAsyncKeyState(Keys.F8) Then
        'something
    End If
ElseIf ComboBox1.SelectedItem = "F9"
    If GetAsyncKeyState(Keys.F9) Then
        'something
    End If
ElseIf ComboBox1.SelectedItem = "F10"
    If GetAsyncKeyState(Keys.F10) Then
        'something
    End If
End If
'and other more..

我试过

Dim asd as String
asd = ComboBox1.Text
If ComboBox1.Text Then
    If GetAsyncKeyState(Keys.kj) Then
        'something
    End If
End If

1 个答案:

答案 0 :(得分:0)

一种简单的方法是将所有内容放在Dictionary中,使用它可以通过Dictionary键检查指定的键盘键。

首先,在类级别(任何子或函数之外)声明它:

Dim Hotkeys As New Dictionary(Of String, Keys) From { _
    {"F8", Keys.F8}, _
    {"F9", Keys.F9}, _
    {"F10", Keys.F10} _
}

然后,当您要检查是否按下了指定的键时,您只需执行以下操作:

If GetAsyncKeyState(Hotkeys(ComboBox1.SelectedItem.ToString())) Then
    'Some code here
End If

要添加更多按键,您只需在字典中添加行。

{"<key alias>", Keys.<key value>}, _

<key alias>(没有<>括号)必须完全ComboBox中的相应项目相同。

最后一点:每行应以}, _结尾,但最后一行除外,其中不包含逗号} _

希望这有帮助!