[WinForms] Некорректное поведение системы диалоговых окон
От: std_string Россия  
Дата: 25.02.09 10:30
Оценка:
Уважаемые рсдн'овцы, буду рад любой подсказке

В WinForms приложении используется система диалоговых окон. Создается она следующим образом:
пусть 0 — главная форма, из нее создается немодальное диалоговое окно 1 (владелец 0), из него создается модальное диалоговое окно 2 (владелец 1)
при нажатии OK в 2 запускается некий процесс, отоброжаемый в 1 и все хорошо
при нажатии Cancel в 2, закрывается и окно 1 ... и при этом окно 0 не получает фокус (если в системе есть открытые окна других приложений то активными становятся они)
понятно, что с этим можно бороться в 1, когда обрабатываем результаты взаимодействия с модальным диалогом 2 : установить фокус на окно 0 (form0.SetFocus()) перед закрытием окна 1, но как то это не красиво
ради экперимента был сделан пример не в .NET'е (на дельфи) — и там этой проблемы не возникает
вопрос в том, почему так и как с этим бороться (не вызывая везде SetFocus)

ЗЫ. ситуация проявляется в .NET 2.0, 3.5 под XP и Vista (под другие платформы и ОС не поверял)

за ранее большое спасибо
Re: [WinForms] Некорректное поведение системы диалоговых око
От: Pavel M. Россия  
Дата: 25.02.09 13:31
Оценка:
Здравствуйте, std_string, Вы писали:

_>за ранее большое спасибо



Запускается поток, Вы имели в виду? Делфи никакого отношения к .НЕТ не имеет Мне кажется, что у Вас неправильно организована работа с окнами. Это раз. Два — это то, что когда вы копнете глубже в WinForms, то установка фокуса ручками покажется Вам цветочками
--------------------------
less think — do more
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.