2016-01-10 2 views
0

Я пытаюсь выполнить действие, когда определенные клавиши, выбранные пользователем, нажаты, но я не знаю, как это сделать.VB GetAsyncKeyState, combobox selected keys

Есть ли простой способ для этого:

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 

ответ

0

Один простой способ это поставить все в 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.

И последнее примечание: каждая строка должна заканчиваться }, _, за исключением последней, которая не содержит запятой } _.

Надеюсь, это поможет!

Смежные вопросы