Как отключить фильтрацию событий нажатия модального диалога - PullRequest
1 голос
/ 02 декабря 2011

Я столкнулся со странной проблемой и, похоже, мне пришлось искать следующую причину. Среда C # (.NET 2.0):

Мой код использует платформу какого-то вендора и в одно время открывает модальное диалоговое окно. Кажется, что фреймворк фильтрует нажатия клавиш «Enter» в приложении (возможно, путем реализации IMessageFilter). Как следствие, закрытие моего диалога нажатием кнопки «ОК» приводит к странному поведению - закрытие с помощью щелчка мыши по «ОК» работает нормально. Изменение кода платформы, к сожалению, не вариант. Поэтому я хотел бы отключить, чтобы инфраструктура замечала нажатия клавиш «Enter» (и, возможно, «ESC») в моем диалоге. Кто-нибудь знает, как это можно сделать?

EDIT:

Я "решил" проблему. Пожалуйста, обратитесь к принятому ответу ниже.

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

Я «решил» проблему.Вот решение для будущей ссылки: установка свойства FormBorderStyle Form (которое было создано в модальном диалоге) в FormBorderStyle.FixedDialog решило проблему.Да, это типичный случай Cargo-Cult-Programming, но после тщательного тестирования исправление работает надежно.

0 голосов
/ 02 декабря 2011

Создайте файл javascript, который вводит нажатую клавишу ввода, чтобы он выполнял событие ok на вашем модале.Просто убедитесь, что ваш javascript выше всех других javascript в приложении, и он должен запускаться первым.

...