我正在将 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/