Есть ли известные проблемы, связанные с изменением фокуса между обработкой сообщений? - PullRequest
1 голос
/ 30 июня 2011

На основании комментария, который я получил на опубликованный ответ ( ссылка здесь ), у меня есть вопрос.какие проблемы могут возникнуть, если я вынужден установить фокус на определенных элементах winform?

т.е. что не так с этим методом (циклический фокус внутри компонентов контейнера / панели / фрейма ...):

private void containers_max_tabindex_element_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (e.KeyValue == 9 )
            element_that_has_tabindex_equal_to_containers_min_tab_index_minus_1.Focus();
        }

Я уже несколько месяцев пользуюсь этим методом, и пока все хорошо, никаких жалоб от конечных пользователей

1 Ответ

1 голос
/ 30 июня 2011

Это чепуха, конечно, Winforms уже делает это по умолчанию, когда вы нажимаете клавишу Tab.Вы не выиграете никаких призов за фрагмент кода, он потерпит неудачу, когда вы установите фокус на элемент управления, который отключен.Гораздо лучший способ - переопределить ProcessCmdKey () для распознавания Keys.Tab.Верните true, чтобы Winforms не пытался перейти к следующему элементу управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...