Страница: 1 |
Вопрос: Выполнение программы во время набора текста | Добавлено: 21.11.07 19:04 |
Автор вопроса: ![]() |
Привет.
Задача такая. Есть массив слов. И два текстбокса. Надо, чтобы при НАБОРЕ слова в одном, происходил поиск подобного слова в массиве и отражения во втором. Ну то есть, сначала по первой букве, потом по двум и т.д. Типа интелектуального ввода на мобильнике. Надеюсь понятно объясняю. Вот. Не обязательно соответствие в текстбокс выводить, можно в переменную, не важно. Главое, чтобы сравнение шло в момент набора, а не после при нажатии кнопы или другом действии. Может кто-нить помочь? Или хотя бы посоветуйте, куда копать Благодарю |
Ответы | Всего ответов: 7 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 454 |
Профиль | Цитата | #1 | Добавлено: 21.11.07 19:24 |
обратывай KeyPress.
В нем пусть будет строчная переменная, скомпонованная из уже набранного текста и нового символа(Chr(KeyAscii)), тут надо предусмотреть положение каретки(SelStart) и нажатие BackSpace,Escape и пр. Потом пробежаться по массиву (InStr) и если соответствие найдено присвоить его второму textbox, если нет - KeyAscii=0, тем самым запретив печать символов. Лень писать пример. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ICQ: 445091742 Вопросов: 4 Ответов: 169 |
Профиль | Цитата | #2 | Добавлено: 21.11.07 19:28 |
Есть Событие 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 |
Номер ответа: 3 Автор ответа: ![]() ![]() Вопросов: 33 Ответов: 119 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 22.11.07 08:51 |
Благодарю за подсказку |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 18 Ответов: 186 |
Профиль | Цитата | #4 | Добавлено: 22.11.07 15:10 |
Я может не совсем понял, что надо сделать, но по-моему проще создать 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 Теперь, когда в поле ввода будет вводится начало какой-то строки из списка, оно будет само подставляться в это поле. |
Номер ответа: 5 Автор ответа: ![]() ![]() Вопросов: 33 Ответов: 119 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 23.11.07 15:37 |
нууу, можно и так )))
Но мы ж трудностей не боимся ))) |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() Вопросов: 18 Ответов: 186 |
Профиль | Цитата | #6 | Добавлено: 23.11.07 15:39 |
Зачем воротить лишнее, когда можно сделать проще и удобнее? |
Номер ответа: 7 Автор ответа: ![]() ![]() Вопросов: 33 Ответов: 119 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 23.11.07 15:46 |
чтобы знать как, да и не нужем мне комбо, у меня текстовые блоки стоят, в которые вводятся значения для дальнейшей работы. И этот пример мне нужен был только для вывода существующего значения...
Уже все заработало. как я и хотел Всех благодарю |
Страница: 1 |
|