2017-01-20 7 views
0

У меня есть гибридное приложение - приложение VB6 может вызывать некоторые формы .NET WPF через механизм CCW. Эти формы обрабатывают пользовательский ввод (клавиатура + мышь) правильно, включая навигацию TAB, если они показаны из CCW методом «ShowDialog». Если я использую немодальный метод «Показать», я получаю такое поведение: форма .Net деактивируется с помощью клавиш навигации (TAB, стрелок) и активирована форма корневого VB6. Пожалуйста, дайте мне совет, как предотвратить такое поведение..NET CCW: проблема дезактивации формы WPF

+0

Используйте 'ShowDialog'. –

+0

Работало до появления новых требований. В начале мы имеем одностороннее общение. Только VB6 может вызвать .NET. Но теперь нам нужно реализовать двунаправленную связь, используя технологию COM: точки подключения. Он позволяет объекту Callie (COM) уведомлять вызывающего абонента событиями, определенными в специальном интерфейсе. Если мы используем метод ShowDialog, он блокирует поток пользовательского интерфейса для уведомлений на VB6 –

+0

У вас есть доступ к внутренним компонентам обоих приложений, т. Е. Это ваш код? –

ответ

0

Это не было проблемой. Это просто связанная с VB6 функция (не для использования .NET или CCW). Описанное поведение связано с некоторыми формами, которые содержат пользовательские элементы управления со свойствами по умолчанию, такими как «ForwardFocus = false». Если я установил значение свойства «true», все будет работать как ожидалось.