Автоматический переход по полям формы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
David
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 10.03.2004 (Ср) 20:41
Откуда: FRANCE

Автоматический переход по полям формы

Сообщение David » 19.02.2006 (Вс) 19:09

Значить, имею в форме поля для ввода текста, хотел бы что-бы после ввода определеного количества символов, наример 5, программа перешла автоматический в другое поле ввода ?
Спасибо, всем умникам !

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 19.02.2006 (Вс) 19:14

Как вариант:
Код: Выделить всё
Private Sub txt1_KeyPress(KeyAscii As Integer)
    If Len(txt1.Text) >= 5 Then txt2.SetFocus
End Sub
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 19.02.2006 (Вс) 19:27

А ещё, чтоб таже перескакивать назад, добавить
Код: Выделить всё

If KeyAscii = 27 and txt1.text = 0 Then
txt0.SetFocus             'Перемещаемя в предыдущий Т/Б
txt0.SelStart = 32766  'Ставим курсор в его конец.
txt0.SelLengh = 0


А ты не ввод серийника делашь?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 19.02.2006 (Вс) 19:36

К примеру, так (пять символов - предел):
Код: Выделить всё
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
    If KeyAscii = 8 Then Exit Sub 'Дабы по бэкспейсу не переходило на следущую позицию
    If KeyAscii = 13 Then Exit Sub
    If Len(Text1(Index).Text) = 4 Then Text1((Index + 1) Mod Text1.Count).SetFocus
    If Len(Text1(Index).Text) = 5 Then KeyAscii = 0 'Больше пяти символов не запишешь!
End Sub

PS. Мдя... Опоздал...
Листинги не горят!

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 19.02.2006 (Вс) 20:06

2 Хакер
txt0.SelStart = 32766

Не соглашусь. Так правильно
Код: Выделить всё
txt0.SelStart = Len(txt0)
А я все практикую лечение травами...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 19.02.2006 (Вс) 20:27

Twister писал(а):Так правильно

Так правильней. Но как я написал, я так делал - ошибок нет. Так-что нужно подумать, стоит ли тратить время, на то чтобы узнать размер переменной.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 19.02.2006 (Вс) 20:35

я так делал - ошибок нет

Не сомненно, вряд ли в текстовое поле можно поместить 32766 символов, если ограничение стоит на 5-6... :lol: Просто, думается мне, следует давать общий вариант решения, а об оптимизации автор подумает потом сам, если конечно ему важны тысячные доли секунды...
А я все практикую лечение травами...

David
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 10.03.2004 (Ср) 20:41
Откуда: FRANCE

Сообщение David » 20.02.2006 (Пн) 2:10

СПАСИБО ВСЕМ

Самое страшное что я знал это, но не догодлся, чайник и в Африке чайник :oops:

И всё же ещё раз Спасибо


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 28

    TopList