Привет все
Возникла такая проблема: можно ли в С# как нибудь показать форму неактивной? Имеется в виду без использования WinAPI, только Framework.
Заранее спасибо
... << RSDN@Home 1.0 beta 6a >>
23.12.03 18:11: Перенесено модератором из '.NET' — AVK
24.12.03 06:58: Перенесено модератором из 'ASP.NET' — TK
Здравствуйте, GAle, Вы писали:
GA>Привет все
GA>Возникла такая проблема: можно ли в С# как нибудь показать форму неактивной? Имеется в виду без использования WinAPI, только Framework.
GA>Заранее спасибо
Control.Enabled = false
Здравствуйте, Lloyd, Вы писали:
GA>>Возникла такая проблема: можно ли в С# как нибудь показать форму неактивной? Имеется в виду без использования WinAPI, только Framework.
L>Control.Enabled = false
Да нет, это не то. Контрол не должен быть false.
Может быть неправильно задал вопрос. Нужен в дот нете аналог SetWindowPos с параметром SWP_NOACTIVATE.
Короче мне попап сделать надо

... << RSDN@Home 1.0 beta 6a >>
Здравствуйте, serg_p, Вы писали:
GA>>Нужен в дот нете аналог SetWindowPos с параметром SWP_NOACTIVATE.
SP>Попробуйте при помощи Reflection достать SetWindowPos из Control'a.
SP>А какие сложности с импортированием Win API функций?
Сложностей никаких, религия не позволяет

Нужно именно без WinAPI
... << RSDN@Home 1.0 beta 6a >>
Здравствуйте, GAle, Вы писали:
GA>Здравствуйте, serg_p, Вы писали:
GA>>>Нужен в дот нете аналог SetWindowPos с параметром SWP_NOACTIVATE.
SP>>Попробуйте при помощи Reflection достать SetWindowPos из Control'a.
SP>>А какие сложности с импортированием Win API функций?
GA>Сложностей никаких, религия не позволяет
GA>Нужно именно без WinAPI
Я так думаю, что ничего без API не получится... Я уже два дня сижу с этой проблемой.
Тут такое дело:
— Во первых: даже если показывать окно с SW_SHOWNOACTIVATE, есть много других проблем. К примеру, как теперь прятать popup? В смысле, когда? По OnDeactivate не получится, т.к. окно и не было активным.
— Узнать о щелчках мыши вне popup тоже тяжело. Для начала — сообщение WM_NC.. никогда не преобразуется в OnMouse... или OnClick. Т.е. щелчки по caption формы просто так не поймать. Конечно, существуют IMessageFilter'ы, но им неподвластны щелчки по окнам чужих приложений. Они вообще никогда не приходят. Тут, видимо, надо вешать хук.
— При появлении второго popup предыдущее не всегда должно исчезать. А вдруг это раскрылся мой пункт меню?
— Плюс необходимо глушить все клавиши. И обрабатывать эскейп. Тут не обойтись без IMessageFilter и кодов сообщений.
Вообще, есть предложение вместе хакнуть этот чертов popup.
Здравствуйте, GAle, Вы писали:
GA>Привет все
GA>Возникла такая проблема: можно ли в С# как нибудь показать форму неактивной? Имеется в виду без использования WinAPI, только Framework.
GA>Заранее спасибо
Не уверен, но может подойдет this.SendToBack()
Понимаю, что не совсем то, но форма однозначно становится неактивной