如何将胜利形式带到前面?

时间:2014-12-02 13:32:45

标签: c# winforms

我有一个让我疯狂的winform ...... 当我打开它时,它打开并进入我打开它的主窗体后面。 我试着调用:BringToFront(),Focus(),Activacte(),但仍然没有...... 这是我的代码:

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

我知道主窗体的TopMost属性设置为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();

这就是它让我疯狂的方式......

2 个答案:

答案 0 :(得分:0)

您必须使用Form.Show(IWin32Window)方法将主表单设为frm的所有者。

所以你的代码应该是

frm.Show(this);

答案 1 :(得分:0)

您必须将主窗体的实例传递给要显示的窗体的Show方法。

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

当然,如果您在主窗体类中实现第二个窗体,那么这是有效的(因此您可以使用this关键字。