2014-12-02 26 views
0

我有一個讓我瘋狂的winform ... 當我打開它時,它會打開它,並從我打開它的主窗體後面打開。 我打過電話:BringToFront(),福克斯(),Activacte(),仍然沒有.... 這裏是我的代碼:如何將勝利形式帶到前面?

MyForm frm = new MyForm(); 
frm.WindowState = FormWindowState.Maximized; 
frm.StartPosition = FormStartPosition.CenterParent; 
frm.Show(); 
frm.BringToFront(); 
frm.Activate(); 

我知道的主要形式有最上面的屬性設置爲true,但我也有這個代碼,工作得很好:

Form frmLog = new Form(); 
LogViewer logControl = new LogViewer(); 
frmLog.Controls.Add(logControl); 
logControl.Dock = DockStyle.Fill; 
frmLog.WindowState = FormWindowState.Maximized; 
frmLog.StartPosition = FormStartPosition.CenterParent; 
frmLog.Text = "Log Viewer"; 
frmLog.Show(); 

所以這是它讓我瘋狂你必須使用Form.Show(IWin32Window)方法設置您的主要形式,業主爲frm方式...

+0

確保你的父窗體的最頂層的屬性設置爲true。 – ken2k 2014-12-02 13:34:08

+0

它設置爲true,但我仍然擁有一個用戶控件,可以加載到我創建的新窗體中,並可以像下面這樣打開:'Form frmLog = new Form(); LogViewer logControl = new LogViewer(); frmLog.Controls.Add(logControl); logControl.Dock = DockStyle.Fill; frmLog.WindowState = FormWindowSt ate.Maximized; frmLog.StartPosition = FormStartPosition.CenterParent; frmLog.Show();' – 2014-12-02 13:35:58

回答

0

你必須在主窗體的實例傳遞給你要顯示的形式Show方法。

MyForm frm = new MyForm(); 
frm.Show(this); 

當然這工作,如果你是instanciating主窗體類中的第二種形式(這樣你就可以使用this關鍵字。

+0

它很好用,10X :) – 2014-12-02 13:40:41

0

所以,你的代碼看起來應該像

frm.Show(this);