gpt4 book ai didi

c# - 如何在关闭父窗体而不关闭它们之前加载子窗体

转载 作者:行者123 更新时间:2023-11-30 21:29:20 25 4
gpt4 key购买 nike

我正在为某个项目使用 visual studio 2017

如何在不关闭父窗体的情况下在关闭父窗体之前加载子窗体

这样做只是关闭应用程序而不加载下一个表单:

private void button_Click(object sender, EventArgs e) {
Form2 f2 = new Form2();
f2.Show();
this.Close();
}

编辑:问题改写

最佳答案

应用程序因 Programm.cs 中的 Application.Run(new Form1()) 而关闭。

这是 winforms 应用程序的默认模板,假设您将只使用一个(主)表单,关闭它会终止应用程序。

我假设您只是将您的表单称为父/子,但它们不是 MDI,您也没有设置 Owner属性(property)。而是有条件地显示第二个的两种形式(单击右键时)。此条件可以通过 DialogResult 传递。

将您的 Main 方法更改为如下内容:

[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new Form1()); - don't use this anymore

var form1 = new Form1();
if(form1.ShowDialog() == DialogResult.XXX)
(new Form2()).ShowDialog();
}

和按钮点击事件:

void button_Click(object sender, EventArgs e) => DialogResult.XXX;

这将关闭表单并返回指定的值。

你必须 choose return value你自己,如果没有其他的 OK 就可以了。

关于c# - 如何在关闭父窗体而不关闭它们之前加载子窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55473298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com