我有一个 .NET 4 WinForm 应用程序。我在打开子窗体的主窗体上有一个按钮。子窗体具有焦点。当子窗体打开时,如果我单击主窗体,主窗体将获得焦点,但子窗体仍位于主窗体之上。
即使子窗体打开,我怎样才能让主窗体出现在最前面?
这是我的两种形式的示例代码:
using System;
using System.Windows.Forms;
namespace WinTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var form = new Form2();
form.Show(this);
}
}
}
using System.Windows.Forms;
namespace WinTest
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
}
}
根据下面 Kumar 的回答,我更新了我的主表单如下:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WinTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
_FormList = new List<Form>();
}
private List<Form> _FormList;
private void button1_Click(object sender, EventArgs e)
{
var form = new Form2();
form.FormClosed += Form_FormClosed;
_FormList.Add(form);
form.Show();
}
private void Form_FormClosed(object sender, FormClosedEventArgs e)
{
_FormList.Remove((Form)sender);
}
private void Form1_Resize(object sender, EventArgs e)
{
foreach (var form in _FormList)
{
form.Visible = WindowState != FormWindowState.Minimized;
}
}
}
}
这现在按预期工作。
最佳答案
这样做
form.Show();
代替
form.Show(this);
参数设置要显示的表单的父级。父表单将在他的子表单下。
关于c# - 如何让 .NET 4 应用程序的主窗体出现在最前面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5302496/