клавиша ввода обрабатывается дважды в смешанном проекте WPF / Winform - PullRequest
0 голосов
/ 06 января 2011

У меня есть панель управления winform, на которой размещены некоторые диалоги WPF. Когда я выбираю строку в WinView ListView и нажимаю клавишу Enter, вызывается OnItemActivate, который запускает диалог WPF. Тем не менее, диалоговое окно WPF появляется, а затем сразу же исчезает, потому что нажата кнопка по умолчанию «отмена». Кажется, что клавиша Enter запускается дважды: одна для запуска диалогового окна WPF, другая для нажатия кнопки отмены. Мы не хотим, чтобы диалоговое окно WPF было отменено нажатием клавиши Enter.

Согласно трассировке стека, похоже, что WPF и Winform обрабатывают ключ ввода отдельно. WPF не знает, что ключ ввода был обработан Winform ListView. Это сделано в Winform и WPF?

Чтобы клавиша ввода не закрывала диалоговое окно WPF, нам нужно изменить фокус с кнопки отмены на другой элемент управления (например, текстовый блок). Есть ли лучший способ исправить / обойти эту проблему?

1 Ответ

0 голосов
/ 28 февраля 2012

Как предложил Рик в комментариях, попробуйте вызвать Application.DoEvents (), прежде чем открывать диалог WPF.

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