Кнопка по умолчанию в форме (VB 2008)

#vb.net #winforms

#vb.net #winforms

Вопрос:

Я хочу найти способ создать определенную кнопку, кнопку формы по умолчанию, т.Е. Кнопку, которая выделяется при первом открытии формы.

Я попробовал свойство AcceptButton, но когда я запускаю программу, это не работает.

Есть идеи?

Заранее благодарю вас,

Tassos

Ответ №1:

Вам нужно изменить AcceptButton свойство содержащей формы.

 form1.AcceptButton = button1
  

Вот form1 форма, для которой вам нужно установить кнопку по умолчанию, и button1 это имя кнопки в этой форме.

Ответ №2:

Форма AcceptButton и CancelButton свойства определяют поведение по умолчанию для клавиш ввода и выхода, а не для выделения.

Чтобы выделить кнопку, используйте метод Focus, но при выполнении этого в событии form_load вам нужно будет вместо этого вызвать метод Select .

 btnDefault.Select()
  

Как упоминалось в комментариях, установка элемента управления на наименьший порядок табуляции приведет к тому же

Комментарии:

1. Спасибо за ваш ответ. Но я попробовал это, и ничего не изменилось. Что с этим не так?

2. Используйте Select(), фокус может работать только тогда, когда кнопка видна. Которого еще нет в событии загрузки. Еще проще просто присвоить кнопке наименьший TabIndex .

3. Спасибо @HansPassant мои WinForms немного заржавели. Я обновил ответ;

Ответ №3:

Ответ от ‘chk’ на 5/2/13 является правильным ответом, но отображается в виде строки, что, конечно, не является способом сделать это.

Кроме того, в таблице свойств формы вы можете найти в разделе Разное свойство ‘AcceptButton’. Это даст вам список кнопок в форме — просто выберите нужную.

Кнопка, выбранная в качестве кнопки AcceptButton, будет вести себя как кнопка «по умолчанию». Она будет «выделена» более темной рамкой и будет нажата при нажатии клавиши Enter на клавиатуре.

Настройка AcceptButton отличается от настройки фокуса кнопки. Событие нажатия кнопки AcceptButton будет вызвано клавишей Enter независимо от того, какой элемент управления сфокусирован на форме.

Ответ №4:

Вы также можете сделать это программно. У меня есть форма обслуживания, в которой изначально я хочу кнопку «поиск» в качестве кнопки принятия формы. когда я показываю область обслуживания поля, я хочу, чтобы кнопка «ok» была кнопкой «Принять». Вы просто измените это в соответствующих областях своего кода для меня.AcceptButton = MyButtonName .