Вопрос: Выполнение программы во время набора текста
Добавлено: 21.11.07 19:04
Автор вопроса: angrynews | Web-сайт:www.angrynews.ru
Привет.
Задача такая. Есть массив слов. И два текстбокса. Надо, чтобы при НАБОРЕ слова в одном, происходил поиск подобного слова в массиве и отражения во втором. Ну то есть, сначала по первой букве, потом по двум и т.д. Типа интелектуального ввода на мобильнике. Надеюсь понятно объясняю. Вот. Не обязательно соответствие в текстбокс выводить, можно в переменную, не важно. Главое, чтобы сравнение шло в момент набора, а не после при нажатии кнопы или другом действии.
Может кто-нить помочь? Или хотя бы посоветуйте, куда копать
Благодарю
обратывай KeyPress.
В нем пусть будет строчная переменная, скомпонованная из уже набранного текста и нового символа(Chr(KeyAscii)), тут надо предусмотреть положение каретки(SelStart) и нажатие BackSpace,Escape и пр.
Потом пробежаться по массиву (InStr) и если соответствие найдено присвоить его второму textbox, если нет - KeyAscii=0, тем самым запретив печать символов.
Лень писать пример.
Есть Событие TextBox-a KeyPress происходит при нажатии кнопки в TextBox, KeyAscii - код нажатой кнопки
'intel-DX
'www.VBNet.ru
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Text1_( As Integer)
Select Case Len(Text1)
Case 0: Text2 = Text2 & "i"
Case 1: Text2 = Text2 & "n"
Case 2: Text2 = Text2 & "t"
Case 3: Text2 = Text2 & "e"
Case 4: Text2 = Text2 & "l"
Case 5: Text2 = Text2 & "-"
Case 6: Text2 = Text2 & ""
Case 7: Text2 = Text2 & "X"
End Select
End Sub
Я может не совсем понял, что надо сделать, но по-моему проще создать ComboBox, эмулирующий TextBox. Для этого свойтство ComboBox'a ShowDropButtonWhen надо установить как 0 (fmShowDropButtonWhenNever). Далее запихнуть в этот список массив значений:
Option Explicit
Option Base 1
Private Sub UserForm_Initialize()
'список слов
Dim theList(5) As String
theList(1) = "Вася"
theList(2) = "Маша"
theList(3) = "Петя"
theList(4) = "Ваня"
theList(5) = "Катя"
'перекидываем его в ComboBox1
ComboBox1.List = theList
End Sub
Теперь, когда в поле ввода будет вводится начало какой-то строки из списка, оно будет само подставляться в это поле.
чтобы знать как, да и не нужем мне комбо, у меня текстовые блоки стоят, в которые вводятся значения для дальнейшей работы. И этот пример мне нужен был только для вывода существующего значения...
Уже все заработало. как я и хотел
Всех благодарю