Заказчик захотел, чтобы после нажатия Enter пользователь переходил на следующий элемент управления, аналогично нажатию Tab. Основная идея проста - перехватываем нажатие клавиши Enter и посылаем форме нажатие Tab, но есть одна тонкость - если мы хотим разом установить подобное поведение для всей формы, а не каких-то конкретных управляторов, необходимо выставить в true свойство KeyPreview.
После чего вешаем код на соответствующее событие нашей формы, я выбрал KeyUp, используя свойство KeyCode параметра KeyEventArgs:
if (e.KeyCode == Keys.Enter) { System.Windows.Forms.SendKeys.Send("{TAB}"); }
Вышеописанная связка может привести к интересному глюку, если мы реализуем ее в диалоговом окне, вызываемом с другой формы и переходим на него нажимая Enter на кнопке вызова диалогового окна (родительская форма может работать по аналогичной схеме). В таком случае диалоговое окно получит KeyUp и последующий Tab при нажатии на кнопку (Enter'ом) на родительской форме (и сразу перейдет на следующий элемент управления). Объяснения столь дивному чуду природы нет, есть лекарство - подписываемся на событие KeyPress, которое происходит только тогда, когда элемент находится в фокусе. Маленькая проблема, у класса KeyPressEventArgs нет свойства KeyCode, есть только KeyChar, так что определять нажатую клавишу придется немного иначе:
if (e.KeyChar == (char)Keys.Return) { System.Windows.Forms.SendKeys.Send("{TAB}"); }
[url=https://hyip-helper.net]купить хайп[/url] - купить хайп проект под ключ, купить hyip проект
Thank you for registering. Contact us again http://nullpro.info Okeygorandom kzd9806341