我希望在显示第二个时关闭第一个表单。但是所有表格都意外地关闭了!我无法理解为什么。请解释我它的原因并帮助我正确地做到这一点。
我的代码:
private void b_digerForm_Click(object sender, EventArgs e)
{
this.Close();
F_Diger digerForm = new F_Diger();
digerForm.ShowDialog();
}
P.S:我是C#的新手。我搜索了这个问题,但找不到任何有用的帖子。
非常感谢。
答案 0 :(得分:1)
您使用ShowDialog打开表单。这意味着当主窗体关闭时,所有对话框窗口也将关闭。你可以使用digerForm.Show();保持第二种形式开放。
答案 1 :(得分:0)
由于这是主窗体,您必须隐藏它,而不是关闭它,否则在不同的上下文中运行您的应用程序。
private void b_digerForm_Click(object sender, EventArgs e)
{
this.Hide();
F_Diger digerForm = new F_Diger();
digerForm.ShowDialog();
}
答案 2 :(得分:0)
您的问题是您正在尝试关闭主窗体,并且通过这样做,您将关闭该窗体(form2)的子窗体。您最好的选择是在查看第二个时使用this.Hide()
隐藏form1。
请记住在完成form2
后关闭答案 3 :(得分:0)
使用此
private void b_digerForm_Click(object sender, EventArgs e)
{
F_Diger digerForm = new F_Diger();
digerForm.ShowDialog(this);
}
答案 4 :(得分:0)
更改Program.cs文件,以便不为应用程序定义主窗体。
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form FormLogin = new FrmLogin();
FormLogin.Show();
Application.Run();
}
}