0
我有一個.Net winforms(C#)應用程序與它的主窗體(窗體A),它打開不同的其他形式作爲非模式(以便用戶可以在任何主窗體或子窗體獨立)另一個過程的窗口來自我的兩種形式
在某些情況下,子窗體(窗體B)會打開另一個彈出窗體(窗體C)。當這個彈出窗口被關閉時,來自另一個應用程序(例如,chrome,outlook,VS)的另一個窗口進入我的主窗體和子窗體之間。通常這個窗口就在我的主窗口下面。
在合上的形式中,z順序是:Outlook中,形式A型,B型,C型
閉形式℃後,在z-次序改變到:形式A,Outlook中,形式B
我不想具體BringToFront()我的表格A,因爲在給定的時間可能有許多表格B的實例,我不想讓我的表格A超過表格B的。
任何想法可能會導致這種行爲?有沒有辦法確保我的應用程序的所有窗體都在其他窗口之上?
而且這也有副作用,如果我打開表單B的另一個實例,我不能訪問以前的表單B實例。我需要隨時訪問所有表單: – Anuruddha
@Anuruddha,這裏沒有任何東西阻止你訪問以前的實例。唯一需要注意的是,所有者窗口(本例中是FormA)不能覆蓋擁有的窗口。這裏介紹了所有者擁有的Windows關係的一個很好的總結[https://msdn.microsoft.com/en-us/library/system.windows.window.owner%28v=vs.110%29.aspx ?f = 255&MSPPError = -2147217396#Remarks);它對於WPF窗口,但該列表也適用於WinForm窗口。 – TnTinMn