Я работаю над созданием клавиатуры для приложения VB.Net, над которым я работаю. Клавиатура предназначена для помощи пользователям, использующим приложение на станции с сенсорной панелью, на которой нет мыши или клавиатуры.
Это код, который я использовал для настройки клавиатуры:
Public Class Keypad
Private Sub Keypad_Load(sender As Object, e As Event Args) Handles MyBase.Load
Me.TopMost = True
End Sub
Protected Overrides ReadOnly Property CreateParams As CreateParams
Get
Const WS_EX_NOACTIVATE As Int32 = &H8000000
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or WS_EX_NOACTIVATE
Return cp
End Get
End Property
Private Sub btn0_Click(sender As Object, e As EventArgs) Handles btn0.Click
SendKeys.Send("0")
End Sub
Private Sub btn1_Click(sender As Object, e As EventArgs) Handles btn1.Click
SendKeys.Send("0")
End Sub
'all other button methods are the same as above
Таким образом, сама клавиатура представляет собой простую настройку. Стандартная раскладка цифровой клавиатуры 1-9, а также кнопки «Очистить» и «Ввод».
В настоящее время у меня следующие проблемы с клавиатурой:
Хотя в VB.Net я создал клавиатуру, попытка использовать клавиатуру ничего не дает. Однако, если я открою «Блокнот» и переведу фокус на «Блокнот», с помощью клавиатуры можно будет вводить числа в «Блокнот».
Экран входа в приложение настроен как окно диалога, и я не могу его изменить (проблемы с устаревшим кодом). Это означает, что клавиатура неподвижна и непригодна для использования, пока открыт экран входа в систему.
Предполагается, что кнопка «Очистить» удаляет все данные в любом элементе формы, находящемся в фокусе, когда кнопка выбрана. Однако я не совсем уверен, как это запрограммировать и как сделать так, чтобы он не полностью отключал клавиатуру, если у пользователя есть приложение, отличное от VB.Net, сфокусированное при нажатии клавиши.
РЕДАКТИРОВАТЬ: после некоторого тестирования оказалось, что клавиатура работает нормально, если я настроил ее как совершенно отдельный проект. Итак, проблема заключается в том, что форма клавиатуры является частью первоначального проекта, для которого я ее создавал.
SendKey
? Как мне предотвратить это? - person Skitzafreak   schedule 30.01.2019Textbox.Focus
- person preciousbetine   schedule 30.01.2019TextBox.Focus
точно не поможет выяснить, какой конкретный элемент нуждается в фокусе. Есть ли методSelectLastFocus
или что-то, что я могу использовать? Кажется, я не могу найти его. - person Skitzafreak   schedule 30.01.2019