Я хочу запустить UserForm, ТОЛЬКО нажав номер и Enter (чтобы не нажимать). У меня проблема с двойным нажатием Enter. Что произойдет, если я нажму Enter в первый раз, он сфокусируется на Doorgaan, а после второго Enter он фактически "щелкнет" Doorgaan.

How it looks

Кто-нибудь знает, как я могу изменить это на один вход?

2
Iluvpresident 20 Окт 2015 в 21:53

2 ответа

Лучший ответ

Просто установите Doorgaan на Default в properties в VBE. В каждой форме есть только один элемент, который может быть default. Элемент по умолчанию будет активирован при нажатии Enter. Итак, если вы установите для этой кнопки значение Default = True, тогда код для этой кнопки будет запускаться при нажатии клавиши ввода.

Вы также можете изменить элемент Default во время выполнения следующим образом:

UserForm1.btnDoorgaan.Default = True

Кстати, есть также возможность установить элемент на Cancel = True. Этот элемент активируется, когда вы нажимаете Escape на клавиатуре. Итак, если вы добавите кнопку Cancel в свою форму и назначите ее для Cancel = True, вы можете легко закрыть и выйти из этой формы, просто нажав Escape.

4
Ralph 20 Окт 2015 в 20:43

Решение Ральфа - самый простой способ реализовать его, если у вас есть простая форма, подобная вашей.

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

Private Sub TxtBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    If KeyCode = vbKeyReturn Then Me.Hide    'or CommandButton1_Click

End Sub
3
paul bica 21 Окт 2015 в 00:00