В 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] Некорректное поведение системы диалоговых око
Здравствуйте, std_string, Вы писали:
_>за ранее большое спасибо
Запускается поток, Вы имели в виду? Делфи никакого отношения к .НЕТ не имеет Мне кажется, что у Вас неправильно организована работа с окнами. Это раз. Два — это то, что когда вы копнете глубже в WinForms, то установка фокуса ручками покажется Вам цветочками