Переход по текстовым полям по ENTER

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Переход по текстовым полям по ENTER

Сообщение kroskros » 22.07.2006 (Сб) 9:03

Сорри, не могу сообразить. :rendeer:

На форме есть несколько текстовых полей
(TabStopIndex у всех проставленыы в нужном порядке)
какое свойство (поля? формы??) надо задать,
чтобы по нажатию ENTER фокус ввода
переходил на следующее поле?
или вообще обработка события?
Max

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 22.07.2006 (Сб) 9:46

Обработка события. Естественно. If KeyCode = 13... дальше сам, ручками
Весь мир матрица, а мы в нем потоки байтов!

PUNK-GRUNGER
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 145
Зарегистрирован: 10.06.2004 (Чт) 14:22
Откуда: Украина, Николаев

Сообщение PUNK-GRUNGER » 22.07.2006 (Сб) 12:50

Свойство AcceptReturn = True, потом ловишь его и пишешь Ctype([NextControl], TextBox).Focus
«Каждому программисту ЭВМ выдает то, что он заслуживает» (c)

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 22.07.2006 (Сб) 18:02

немного растерян... :roll:

!Viper! писал(а):Обработка события. Естественно. If KeyCode = 13... дальше сам, ручками

у текстБокса есть готовое событие me.Enter может его как-нить?


PUNK-GRUNGER писал(а):Свойство AcceptReturn = True, потом ловишь его и пишешь Ctype([NextControl], TextBox).Focus

а ЧЬЕ это свойство? не в списке формы, ни текстбокса в VS2005 я его не нашел... :(
Max

Shurrik
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 110
Зарегистрирован: 20.05.2004 (Чт) 5:35
Откуда: Керчь, Крым

Сообщение Shurrik » 24.07.2006 (Пн) 6:17

Сам недавно столкнулся с этой же проблемой. Решил ее с помощью двух обработчиков событий KeyDown.
Первый обрабатывает все поля, кроме последнего
If e.KeyCode = Keys.Enter Then GetNextControl(sender, True).Focus()
второй передает фокус первому полю
If e.KeyCode = Keys.Enter Then TextBox1.Focus()
Колесо: Хочешь жить? Умей вертеться.

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 24.07.2006 (Пн) 9:06

так... проще говоря, НЕТ готового метода/свойства,
чтобы переходить по ENTER по полям?
надо юзать рукотворный код?? :(

я нашел некое свойство формы
me.Select(true, true)
тока никак не могу сообразить зачем оно? в моем случае никак не поможет??? :shock:
Max

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 24.07.2006 (Пн) 10:50

метод тыка штука конечно забавная, но может иногда стоит и справку посмотреть? Ибо справка гласит, что метод Select активирует форму. А метод Select(Boolean,Boolean) поможет тебе выбрать следующий или предыдущий контрол на форме или любом другом контейнере
Весь мир матрица, а мы в нем потоки байтов!

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 24.07.2006 (Пн) 20:02

замечательно... я читал так-то,
если бы чего-нить понял, то и не лез бы с наивными вопросами..
теперь как-то бы это приспособить к моим нуждам.. ((
Max

Sacred Phoenix
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 22.07.2006 (Сб) 18:20

Сообщение Sacred Phoenix » 24.07.2006 (Пн) 20:46

Если я правильно понял твою задачу:
Код: Выделить всё
   Private Sub TextBoxes_KeyDown(ByVal Sender As System.Object, ByVal EventArgs As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown, TextBox2.KeyDown, TextBox3.KeyDown, TextBox4.KeyDown, TextBox5.KeyDown
      If (EventArgs.KeyCode() = System.Windows.Forms.Keys.Enter) Then
         Me.SelectNextControl(CType(Sender, Control), True, False, True, True)
      End If
   End Sub

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 25.07.2006 (Вт) 9:04

Sacred Phoenix писал(а):Если я правильно понял твою задачу:


Да, спасибо, по-видимому так и придется сделать..
просто я надеялся, что есть готовое свойство
Max


Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38

    TopList