Я создаю виртуальную буквенно-цифровую клавиатуру (скриншот: https://www.dropbox.com/s/rmlmct30bnvihkx/keypad.png ) и нужна помощь с написанным за ним кодом. Вся цель этого упражнения состоит в том, чтобы создать это приложение с помощью vb.net (в Visual Studio 2010) и заставить его вводить текст в текстовое поле, как это делает мобильный телефон. Это приложение будет работать на компьютере с сенсорным экраном. Мне удалось успешно написать код для работы этой клавиатуры следующим образом:
1) Сначала пользователь выбирает номер, связанный с одним из 3 алфавитов, которые он хочет ввести, например, пользователь выбирает 1, если ему нужно ввести A, B или C. Затем слева от кнопки «Число» появляются 3 поля со значениями. связанные с соответствующим номером.
2) Затем пользователь выбирает один из алфавитов, и он добавляется в текстовое поле, и процесс в 1 повторяется.
Пример кода для кнопки 1:
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
Dim cursorPos As Integer = _SourceControl.SelectionStart
If numlock = False Then
btnAlpha1.Visible = True
btnAlpha1.Text = "A"
btnAlpha2.Visible = True
btnAlpha2.Text = "B"
btnAlpha3.Visible = True
btnAlpha3.Text = "C"
ElseIf numlock = True Then
_sourceForm.ActiveControl = _SourceControl
_SourceControl.SelectedText += "1"
_SourceControl.Select(cursorPos + 1, 0)
End If
End Sub
Пример кода для 3 пустых полей, которые соответствующим образом заполняют значения:
Private Sub btnAlpha3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlpha3.Click
Dim cursorPos As Integer = _SourceControl.SelectionStart
_sourceForm.ActiveControl = _SourceControl
_SourceControl.SelectedText += btnAlpha3.Text
_SourceControl.Select(cursorPos + 1, 0)
End Sub
Private Sub btnAlpha2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlpha2.Click
Dim cursorPos As Integer = _SourceControl.SelectionStart
_sourceForm.ActiveControl = _SourceControl
_SourceControl.SelectedText += btnAlpha2.Text
_SourceControl.Select(cursorPos + 1, 0)
End Sub
Private Sub btnAlpha1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlpha1.Click
Dim cursorPos As Integer = _SourceControl.SelectionStart
_sourceForm.ActiveControl = _SourceControl
_SourceControl.SelectedText += btnAlpha1.Text
_SourceControl.Select(cursorPos + 1, 0)
End Sub
Но это оказалось немного утомительным методом, ладно, исправить очень утомительный метод ввода текста, поэтому я хочу попробовать сделать клавиатуру, похожую на мобильные телефоны.
Все, что мне нужно, это пример кода только для одной кнопки (ABC/1), а остальное я разработаю. Спасибо заранее за вашу помощь.
(Это приложение Windows Forms)
С уважением,
Кавир Махарадж.
sender
. Что касается начальной части, вы можете использовать Dictionary(), чтобы связать каждую кнопку с тремя буквами для всплывающих окон. Код не должен быть таким длинным... - person Idle_Mind   schedule 02.07.2013