Как реализовать управляющую клавишу на дочерних элементах управления пользователя во время разработки, чтобы фокус переместился на соответствующий родительский элемент управления? - PullRequest
3 голосов
/ 17 ноября 2011

Когда вы работаете в конструкторе WinForms, вы можете нажать на дочерний элемент управления, чтобы выбрать его. Когда вы затем нажимаете клавишу Esc, выделение перемещается до родительского элемента управления. Если вы снова нажмете клавишу Esc, будет выбран следующий родительский элемент управления вверх, пока, наконец, не будет достигнута сама форма.

У меня есть пользовательский элемент управления с различными дочерними элементами управления, и я настроил его для поддержки во время разработки. Когда я нажимаю на разрешенный дочерний элемент управления, он выбирается. Когда я нажимаю клавишу Esc, ничего не происходит. Как перехватить клавишу Esc во время разработки и переместить выделение на родительский элемент управления?

1 Ответ

0 голосов
/ 09 марта 2012

Я не уверен, что это будет работать, но вы можете попробовать что-то вроде:

Зарегистрируйте форму с событием нажатия клавиши:

this.KeyPress += new KeyPressEventHandler(frm_Main_KeyPress);

Если клавиша выходанажмите, найдите родителя активного элемента управления и выберите его.

void tc_Main_KeyPress(object sender, KeyPressEventArgs e)
{
    if e.KeyChar = (char)27{
        this.ActiveControl.Parent.Select();
}

Надеюсь, это поможет!

...