2014-12-02 22 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);