C# forms
От: GAle  
Дата: 10.07.03 11:30
Оценка:
Привет все

Возникла такая проблема: можно ли в С# как нибудь показать форму неактивной? Имеется в виду без использования WinAPI, только Framework.

Заранее спасибо
... << RSDN@Home 1.0 beta 6a >>

23.12.03 18:11: Перенесено модератором из '.NET' — AVK
24.12.03 06:58: Перенесено модератором из 'ASP.NET' — TK
Re: C# forms
От: Lloyd Россия  
Дата: 10.07.03 12:19
Оценка:
Здравствуйте, GAle, Вы писали:

GA>Привет все


GA>Возникла такая проблема: можно ли в С# как нибудь показать форму неактивной? Имеется в виду без использования WinAPI, только Framework.


GA>Заранее спасибо


Control.Enabled = false
Re[2]: C# forms
От: GAle  
Дата: 11.07.03 07:26
Оценка:
Здравствуйте, Lloyd, Вы писали:

GA>>Возникла такая проблема: можно ли в С# как нибудь показать форму неактивной? Имеется в виду без использования WinAPI, только Framework.


L>Control.Enabled = false


Да нет, это не то. Контрол не должен быть false.
Может быть неправильно задал вопрос. Нужен в дот нете аналог SetWindowPos с параметром SWP_NOACTIVATE.
Короче мне попап сделать надо
... << RSDN@Home 1.0 beta 6a >>
Re[3]: C# forms
От: serg_p Украина  
Дата: 11.07.03 19:29
Оценка:
Здравствуйте, GAle, Вы писали:

GA>Нужен в дот нете аналог SetWindowPos с параметром SWP_NOACTIVATE.


Попробуйте при помощи Reflection достать SetWindowPos из Control'a.
А какие сложности с импортированием Win API функций?
Re[4]: C# forms
От: GAle  
Дата: 14.07.03 06:50
Оценка:
Здравствуйте, serg_p, Вы писали:

GA>>Нужен в дот нете аналог SetWindowPos с параметром SWP_NOACTIVATE.


SP>Попробуйте при помощи Reflection достать SetWindowPos из Control'a.

SP>А какие сложности с импортированием Win API функций?

Сложностей никаких, религия не позволяет
Нужно именно без WinAPI
... << RSDN@Home 1.0 beta 6a >>
Re[5]: C# forms
От: Poudy Россия  
Дата: 14.07.03 07:02
Оценка:
Здравствуйте, 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.
Re: C# forms
От: W@ndERR ® Украина  
Дата: 14.07.03 09:01
Оценка:
Здравствуйте, GAle, Вы писали:

GA>Привет все


GA>Возникла такая проблема: можно ли в С# как нибудь показать форму неактивной? Имеется в виду без использования WinAPI, только Framework.


GA>Заранее спасибо


Не уверен, но может подойдет this.SendToBack()
Понимаю, что не совсем то, но форма однозначно становится неактивной
----
With best regards, Kot Burov aka W@ndERR ®
UIN: 108043419
--------
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.