我正在将Visual Studio 2017用于某个项目
如何在关闭父窗体之前先加载子窗体,而不同时关闭两个窗体
这样做只会关闭应用程序而不会加载下一个表单:
private void button_Click(object sender, EventArgs e) {
Form2 f2 = new Form2();
f2.Show();
this.Close();
}
编辑:问题改写
最佳答案
由于Application.Run(new Form1())
中的Programm.cs
,应用程序已关闭。
这是winforms应用程序的默认模板,假定您将仅使用一种(主)窗体关闭该窗体将终止应用程序。
我假设您仅将表单称为父/子,但它们不是MDI,也没有设置Owner属性。而是两种形式,其中有条件地显示第二个(单击右按钮时)。可以通过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;
这将关闭表格并返回指定值。
如果没有其他
OK
没问题,则必须自己choose return value。关于c# - 如何在关闭父窗体之前先加载子窗体,而不同时关闭两个窗体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55473298/