c#中关闭任意窗体后返回主窗体

如题所述

打开主窗口就用主窗口的Show()方法,而关闭登录窗口就用登录窗口的Close()方法即可。
即代码如下:

Program.cs中代码:
Application.Run(new
FormLogin());
登录窗口(FormLogin)代码:
private void button1_Click(object sender,
EventArgs e)
{
if (textBox1.Text == "a") { //验证用户名密码

FormMain fm = New FormMain();
fm.Show();
//打开主窗口
this.Close(); //关闭登录窗口

}
}

事实证明,这种办法是行不通的。因为主窗口是由登录窗口打开的,所以我们在关闭登录窗口时,主窗口也会被一起关闭。这是一个线程树,或者窗口树的关系,即一个窗口关闭时,由它打开的新窗口都将被关闭。

解决办法是。

Program.cs中代码:

FormLogin fl = new
FormLogin();
fl.ShowDialog();
if (fl.DialogResult ==
DialogResult.OK)
{
Application.Run(new
FormMain());
}
else
{

return;
}

即先将登录窗口作为一个对话框打开,如果这个对话框返回一个DialogResult.OK的值,那么就表示登录验证成功了,于是打开主窗体。如果验证失败,则程序结束、退出。

在登录窗体(FormLoin)中代码:

private void button1_Click(object sender,
EventArgs e)
{
if (textBox1.Text == "aaa") { //验证用户名密码成功

this.DialogResult = DialogResult.OK; //返回一个登录成功的对话框状态

this.Close(); //关闭登录窗口
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-15
把你要的主窗体IsMdiContainer属性设置为true,它就为主窗体
然后其他窗体
m_Form = new FormXiaoGuo();//子窗体
m_Form.MdiParent = this;//为你的主窗体
m_Form.Show();本回答被网友采纳
第2个回答  2015-04-18
隐藏主窗体,再显示主窗体。
第3个回答  2015-04-18

    mdi

    win32 api找到窗体focus

第4个回答  2016-01-10
如果窗体时Default.aspx 那就是Response.Redirect("Dafalt.aspx");
相似回答