Як я можу зафіксувати натискання клавіш у будь-якому місці моєї форми та змусити його активувати подію кнопки подання?
Як я можу зафіксувати натискання клавіш у будь-якому місці моєї форми та змусити його активувати подію кнопки подання?
Відповіді:
Якщо ви встановите Form
для AcceptButton
властивості '' одного з Button
s на Form
, ви отримаєте таку поведінку за замовчуванням.
В іншому випадку встановіть для KeyPreview
властивості true
значення Form
та обробляйте його KeyDown
подію. Ви можете перевірити наявність Enter
ключа та вжити необхідних заходів.
Ви можете призначити кнопку як "AcceptButton" у властивостях форми, і вона буде фіксувати будь-які натискання клавіш "Enter" у формі та направляти їх до цього елемента керування.
Див. Розділ « Призначення кнопки Windows Forms» як кнопки «Прийняти» за допомогою конструктора та зауважте кілька винятків, які вона окреслює (багаторядкові текстові поля тощо)
Як уже зазначалося, встановіть у властивості форми AcceptButton одну з її кнопок І встановіть для властивості DialogResult для цієї кнопки значення DialogResult.OK , щоб абонент знав, прийнято чи відхилено діалогове вікно.
Ви можете підписатися на KeyUp
подію TextBox
.
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DoSomething();
}
Форма має властивість KeyPreview, яку ви можете використовувати для перехоплення натискання клавіші.
Просто використовуйте
this.Form.DefaultButton = MyButton.UniqueID;
** Вставте ідентифікатор кнопки замість "MyButton".