#vb.net
#vb.net
Вопрос:
В настоящее время у меня есть клавиша запуска для моего vb.net приложение жестко запрограммировано следующим образом:
GetAsyncKeyState(Keys.F2)
Где vb.net sais «F2 как система.Windows.Формы.Клавиши = 113 » при наведении курсора мыши
Но я хочу, чтобы мои пользователи могли выбирать свой собственный ключ. Если я создам выпадающий список (combobox) и предварительно определю в нем некоторые варианты (например, ESC или F3), все эти варианты являются строками. Как я могу преобразовать эти строки в систему.Windows.Формы.Целое число ключей?
Кроме того, я бы хотел, чтобы также можно было «захватить» одно нажатие клавиши. Таким образом, они нажимают кнопку «Захват», и следующая клавиша, которую они нажмут, будет сохранена как кнопка запуска / остановки. Но я бы даже не знал, с чего начать поиск этого.
Ответ №1:
If txtKeys.Text=="F3" Then
GetAsyncKeyState(Keys.F3)
End If
Комментарии:
1. Похоже, что вы перевели с C # == недопустимо, и вам также нужен Then, т.Е. If txtKeys . Затем Text = «F3″…
Ответ №2:
Попробуйте что-то вроде этого:
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
Я создал форму с меткой и кнопкой для примера. например. Значение ключа — это целое число, которое я преобразую в строку для целей отображения. У вас также есть возможность захватывать другие ключевые данные. Смотрите эту информацию в PreviewKeyDownEventArg
Что касается первой части вашего вопроса, используйте оператор Select Case для преобразования между вашими значениями ComboBox и значениями KeyData.