[英]How do I launch a new form in front of my original form in C# Windows Forms?
我正在 Visual Studio 2022 中构建一个 C# Windows 窗体应用程序。我在 Form1(启动时显示的窗体)上添加了一个按钮,将其称为 addWorkersButton。
private void addWorkersButton_Click(object sender, EventArgs e)
{
ExternalDeptEmployeeForm f2 = new ExternalDeptEmployeeForm();
f2.Show();
f2.BringToFront();
}
但是,我仍然通过单击按钮启动表单以显示在 Form1 后面。 我已经尝试了几种可用方法的组合来尝试实现这一点但无济于事:
private void addWorkersButton_Click(object sender, EventArgs e)
{
ExternalDeptEmployeeForm f2 = new ExternalDeptEmployeeForm();
f2.Show();
this.SentToBack();
}
从我发现的其他帖子中,提供的这些示例似乎在很多情况下都有效,所以我只是不确定我的项目中有什么不同会阻止这种情况。
我还尝试添加新实例化的表单 f2 以归原始表单 (Form1) 所有,然后添加 Show() 它。 我这样做是因为根据文档,微软对 AddOwnedForm() 方法说:“拥有的表单也永远不会显示在它们的所有者表单后面。” 您可以在此处的备注下找到它: https ://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.form.addownedform?view=windowsdesktop-7.0
在我的 Program.cs 文件中,在 Main() 方法中,我正在运行 Form1 的实例,然后它似乎需要 Form1 的实例在运行时存在,以便应用程序继续运行:
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
如果这是一个问题,解决方法是什么? 在我看来,在 Form1 中显示 f2 应该没有问题,因为我并没有试图以任何方式关闭它或结束该进程。 任何见解将不胜感激。
采用:
f2.Show(this);
您应该调用Form.Show(IWin32Window)并将拥有的窗口/窗体作为参数(即f2.Show f2.Show()
f2.Show(this)
)和f2
表格将显示在this
表格的前面。 此外, this
表单将成为f2
表单的所有者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.