Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Отображение формы поверх основной


Автор: LefiMind 3.10.2008, 15:13
Здравствуйте.

Возникла такая задача: имеется приложение (не MDI). Из основной формы вызывается вторая. Необходимо сделать так, что бы вторая форма всегда прорисовывалась поверх первой. При этом она должна вести себя как обычное окно: перетаскиваться в любую часть экрана, перекрываться другими формами этого приложения и другими приложениями. В общем вести себя так, как будто AllwaysOnTop работает только в случае с основной формой, но не влияет на все остальные окна Windows.

Буду благодарен за любую помощь.

Автор: gojanki 3.10.2008, 18:48
Цитата(LefiMind @ 3.10.2008,  16:13)
Здравствуйте.

Возникла такая задача: имеется приложение (не MDI). Из основной формы вызывается вторая. Необходимо сделать так, что бы вторая форма всегда прорисовывалась поверх первой. При этом она должна вести себя как обычное окно: перетаскиваться в любую часть экрана, перекрываться другими формами этого приложения и другими приложениями. В общем вести себя так, как будто AllwaysOnTop работает только в случае с основной формой, но не влияет на все остальные окна Windows.

Буду благодарен за любую помощь.

Вызывай ее модально через yourForm.ShowDialog()

Автор: ProgrammingLife 3.10.2008, 22:18
Form.ShowDialog.....да так тоже можно но лучше сделать его статическим методом тогда будут результаты на вторичной форме фактический т.е измененой с той же что второй!

Автор: diadiavova 3.10.2008, 23:51
Цитата(ProgrammingLife @  3.10.2008,  22:18 Найти цитируемый пост)
Form.ShowDialog.....да так тоже можно но лучше сделать его статическим методом тогда будут результаты на вторичной форме фактический т.е измененой с той же что второй! 

Лично я ничего не понял, будем надеятся, что автор темы сообразительней меня.

Я так понимаю, что модальный вызов вряд ли подойдёт из-за того, что он блокирует основное окно, а присвоение свойству TopMost значения  true не подходит из-за того, что такое поведение требуется только на период активности основной формы.
Можно попробовать отслеживать активацию и деактивацию основной формы и в обработчиках соответствующих событий менять TopMost вторичной формы.

Автор: Certain 4.10.2008, 18:08
http://forum.vingrad.ru/forum/topic-230670.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)