Как пометить кнопку по умолчанию для клавиши Enter на элементах формы?

У меня есть приложение для Windows Mobile на C#.
У меня есть пара полей в форме, и когда я нажимаю Enter, я хочу, чтобы форма была отправлена.

Есть ли способ пометить кнопку как кнопку по умолчанию?
И как сделать так, чтобы клавиша "Вниз" перемещала фокус в следующее поле? Порядок табуляции не соблюдается?


person Pentium10    schedule 13.02.2010    source источник


Ответы (1)


  1. У вас может быть метод, который вы связываете как событие KeyDown со всеми элементами управления из этой формы. При этом вы проверяете, является ли KeyCode Enter, затем вызываете метод Submit.

    private void control_KeyDown (отправитель объекта, System.Windows.Forms.KeyEventArgs e) { if (e.KeyCode == Keys.Enter) Submit(); }

  2. То же самое, в методе KeyDown вы обрабатываете клавишу DownArrow. Я не уверен, есть ли у вас метод System.Windows.Forms.Control.SelectNextControl() в Compact Framework, но если у вас его нет, вы можете легко создать что-то подобное самостоятельно.

person Ovi    schedule 13.02.2010
comment
кнопка1.TabIndex; Но зачем вам это читать, достаточно использовать метод SelectNextControl с его параметрами. - person Ovi; 13.02.2010
comment
Спасибо. Мне интересно, почему они не включили это в событие KeyDown по умолчанию. Добавление этого во все элементы управления — это боль. Также, когда ориентация изменилась, клавиша DownArrow больше не работает. - person Pentium10; 13.02.2010
comment
Возможно, когда ориентация изменится, стрелка влево станет вашей стрелкой вниз. - person Ovi; 13.02.2010