Поведение вкладки переопределения в WinForms

 String w1 ="Sarat";
 String w2 ="Sarat";
 String w3 = new String("Sarat");

 System.out.println(w1.hashCode());   //3254818
 System.out.println(w2.hashCode());   //3254818
 System.out.println(w3.hashCode());   //3254818

 System.out.println(System.identityHashCode(w1)); //prints 705927765
 System.out.println(System.identityHashCode(w2)); //prints 705927765
 System.out.println(System.identityHashCode(w3)); //prints 366712642


 if(w1==w2)   //  (705927765==705927765)
 {
   System.out.println("true");
 }
 else
 {
   System.out.println("false");
 }
 //prints true

 if(w2==w3)   //  (705927765==366712642)
 {
   System.out.println("true");
 }
 else
 {
   System.out.println("false");
 }
 //prints false


 if(w2.equals(w3))   //  (Content of 705927765== Content of 366712642)
 {
   System.out.println("true");
 }
 else
 {
   System.out.println("false");
 }
 //prints true
5
задан Robert Höglund 18 August 2008 в 21:16
поделиться

5 ответов

Как правило я сказал бы, что переопределение стандартного поведения клавиши TAB будет плохой идеей. Возможно, можно сделать что-то как отключение 3-го текстового поля, пока действительный доступ не сделан в 2-м текстовом поле.

Теперь, сказав это, я также нарушил это правило по требованию клиента. Мы сделали функцию клавиши Enter как клавиша Tab, где клавиша Enter сохранит значение в текстовом поле и усовершенствует курсор к следующему полю.

3
ответ дан 14 December 2019 в 19:31
поделиться

Я соглашаюсь с DannySmurf. Питание с порядком вкладки могло бы дать Вам ад позже если требования для изменения приложений.

Другая вещь, которую Вы могли сделать, состоит в том, чтобы реализовать некоторый мастер для пользователя для прохождения через.

0
ответ дан 14 December 2019 в 19:31
поделиться

Причина этого нечетного поведения вкладки - все о скорости во входном процессе. Было действительно хорошо получить некоторый вход, я не думал об отключении текстового поля, но это могло на самом деле работать. Но использование клавиши Enter для принятия входа даже не пришло в мою голову. Это будет работать настолько лучше. Пользователь может ввести номера и затем нажать Enter для принятия входа, и следующее возможное текстовое поле будет активным. Это похоже на наличие пирога и еду его также, фактор скорости там, с тех пор, не используя клавишу Enter никакой ненужный Табинг не должен быть сделан для получения до корректного поля, и использование клавиши Enter рядом с числовой клавиатурой заставляет его действительно сглаживать.

Спасибо за вход!

1
ответ дан 14 December 2019 в 19:31
поделиться

Я не думаю, что существует встроенный способ, которым Вы могли сделать это. Все события фокуса WinForms (GotFocus, LostFocus, Входят, Отпуск) называют с пустыми параметрами EventArgs, которые не дадут Вам дополнительной информации.

Лично, я отключил бы третье текстовое поле, как сказал Rob Thomas. Если бы Вы полны решимости сделать это, тем не менее, не было бы трудно настроить руководство (чтение: hackish) решение. После того как клавиша Tab нажимается (если фокус находится на втором текстовом поле), установите переменную в своей форме. Если следующий сфокусированный объект является затем третьим текстовым полем, то Вы знаете точно, как это произошло.

1
ответ дан 14 December 2019 в 19:31
поделиться

Лучше, чем отключение средств управления, попробуйте monkeying вокруг TabStop - если это будет ложью, то управление будет просто пропущено при переключении вкладок.

Я также предположил бы, что событие Changed TextBox является местом для обновления TabStop на других средствах управления.

Я сделал что-то подобное этому с управлением входом в систему, где пользователи могли ввести или имя пользователя или адрес электронной почты (в отдельных полях) плюс их пароль, и позиция табуляции - то, что я раньше делал задание.

0
ответ дан 14 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: