WinForm больше не является TopMost?

У меня есть программа, у которой форма установлена ​​в TopMost = true, но по какой-то причине при ее запуске форма перестала быть формой TopMost. В моем коде нет ничего, что изменяет это свойство формы, поэтому я понятия не имею, что могло вызвать это.

Существуют ли какие-либо известные ошибки со свойством TopMost в Winforms, которые могут быть причиной этого? Что-нибудь еще?


person sooprise    schedule 08.06.2011    source источник
comment
Конкурс должен был использовать UberTopMost.   -  person Henk Holterman    schedule 08.06.2011
comment
Я думаю, что он будет только самым верхним по сравнению с другими формами в вашей программе, свойство TopMost которых имеет значение false.   -  person afaolek    schedule 08.06.2011
comment
@ Хенк, да, это в следующей версии .Net? ;)   -  person sooprise    schedule 08.06.2011
comment
@afaolek, На самом деле, это вело себя как форма TopMost = false. Были и другие формы в приложении, которые были открыты, и для тех оно все равно не было TopMost. Очень странно!   -  person sooprise    schedule 08.06.2011
comment
@ Может тогда это баг   -  person afaolek    schedule 08.06.2011
comment
@afaolek, для других форм в программе TopMost также имеет значение false.   -  person sooprise    schedule 08.06.2011
comment
Почему вы говорите, что TopMost перестал работать? Были ли другие формы из того же приложения? Из других приложений?   -  person John Arlen    schedule 08.06.2011
comment
Надеюсь, вы используете методы Show() или ShowDialog(). Можете показать, как вы их используете? Или внимательно посмотрите, возможно, в вашем коде может быть какой-то простой большой.   -  person CharithJ    schedule 09.06.2011


Ответы (1)


Ваше самое верхнее окно не может быть владельцем других окон, чтобы самое верхнее окно функционировало должным образом. Убедитесь, что _topmost_form.OwnedForms пусто. Если это не так, попробуйте лишить их права собственности с помощью _topmost_form.RemoveOwnedForm(_any_owned_forms).

person zeFrenchy    schedule 23.02.2012