У меня есть приложение .Net winforms (C#) с его основной формой (форма A) и открывает другие формы как немодальные (чтобы пользователь мог работать либо с основная форма или детская форма)Окно другого процесса происходит между двумя моими формами
В некоторых случаях дочерняя форма (форма B) открывает еще одну всплывающую форму (форма C). Когда это всплывающее окно закрывается, между моей основной формой и дочерней формой появляется другое окно из другого приложения (например, chrome, outlook, VS). Обычно это другое окно - это то, что было прямо под моим главным окном.
Перед закрытием формы, Z-порядок: Внешний вид, форма А, форма В, форма С
После закрытия формы с, изменения г порядка на: Формы А, Outlook, формы B
Я не хотел специально указать BringToFront() мою форму A, потому что в данный момент может быть много экземпляров формы B, и я не хочу делать свою форму A над формой B.
Любая идея, что может вызвать такое поведение? Есть ли способ убедиться, что все формы моего приложения находятся над другими окнами?
А также это имеет побочный эффект, если я открываю другой экземпляр формы B, я не могу получить доступ к предыдущему экземпляру формы B. Мне нужно иметь доступ ко всем формам в любое время :( – Anuruddha
@Anuruddha, в этом нет ничего, что препятствовало бы доступу к предыдущим экземплярам. Единственное предостережение в том, что окно владельца (FormA в этом случае) не может покрыть принадлежащее окну . [Здесь] (https://msdn.microsoft.com/en-us/library/system.windows.window.owner%28v=vs.110%29.aspx) представлено хорошее резюме отношений с владельцами окон. ? f = 255 & MSPPError = -2147217396 # Замечания), его для окна WPF, но этот список применим и к окнам WinForm. – TnTinMn