Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Выполнение программы во время набора текста Добавлено: 21.11.07 19:04  

Автор вопроса:  angrynews | Web-сайт: www.angrynews.ru
Привет.
Задача такая. Есть массив слов. И два текстбокса. Надо, чтобы при НАБОРЕ слова в одном, происходил поиск подобного слова в массиве и отражения во втором. Ну то есть, сначала по первой букве, потом по двум и т.д. Типа интелектуального ввода на мобильнике. Надеюсь понятно объясняю. Вот. Не обязательно соответствие в текстбокс выводить, можно в переменную, не важно. Главое, чтобы сравнение шло в момент набора, а не после при нажатии кнопы или другом действии.
Может кто-нить помочь? Или хотя бы посоветуйте, куда копать
Благодарю

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #1 Добавлено: 21.11.07 19:24
обратывай KeyPress.
В нем пусть будет строчная переменная, скомпонованная из уже набранного текста и нового символа(Chr(KeyAscii)), тут надо предусмотреть положение каретки(SelStart) и нажатие BackSpace,Escape и пр.
Потом пробежаться по массиву (InStr) и если соответствие найдено присвоить его второму textbox, если нет - KeyAscii=0, тем самым запретив печать символов.
Лень писать пример.

Ответить

Номер ответа: 2
Автор ответа:
 intel-DX



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 & ";D"
        Case 7: Text2 = Text2 & "X"
    End Select
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #3
Добавлено: 22.11.07 08:51
Благодарю за подсказку

Ответить

Номер ответа: 4
Автор ответа:
 Nytrogen



Вопросов: 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
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #5
Добавлено: 23.11.07 15:37
нууу, можно и так )))
Но мы ж трудностей не боимся )))

Ответить

Номер ответа: 6
Автор ответа:
 Nytrogen



Вопросов: 18
Ответов: 186
 Профиль | | #6 Добавлено: 23.11.07 15:39
Зачем воротить лишнее, когда можно сделать проще и удобнее?

Ответить

Номер ответа: 7
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #7
Добавлено: 23.11.07 15:46
чтобы знать как, да и не нужем мне комбо, у меня текстовые блоки стоят, в которые вводятся значения для дальнейшей работы. И этот пример мне нужен был только для вывода существующего значения...
Уже все заработало. как я и хотел
Всех благодарю

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам