Как было предложено в комментарии, лучший подход состоял в том, чтобы вообще избежать использования свойства TopMost.
Альтернативный способ гарантировать, что диалоги появляются поверх основных (или родительских) форм, - это идентифицироватьродительская форма для дочерней формы.Это можно сделать с помощью ключевого слова this
в вызове метода ShowDialog()
.
В C #:
someForm.ShowDialog(this)
В Visual Basic:
someForm.ShowDialog(me)
Это идентифицирует this
форму как родителя нового диалога, что приведет к тому, что новая форма будет отображаться сверху более надежно, чем не с использованием this
в вызове метода, без использования TopMost
свойство, которое может привести к другим непреднамеренным проблемам.
Это решает проблему, указанную в этом тикете, когда за диалогами, созданными в программе, появляются окна, не связанные с текущей программой.