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

 我来答
出家人词悲
高赞答主

2016-01-22 · 大脑停止不了思考
知道大有可为答主
回答量:1.4万
采纳率:12%
帮助的人:3789万
展开全部
打开主窗口就用主窗口的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(); //关闭登录窗口
}
}
fs剑龙
推荐于2017-12-15 · 超过66用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:85.5万
展开全部
把你要的主窗体IsMdiContainer属性设置为true,它就为主窗体
然后其他窗体
m_Form = new FormXiaoGuo();//子窗体
m_Form.MdiParent = this;//为你的主窗体
m_Form.Show();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HymanZheng
2015-04-18 · TA获得超过126个赞
知道小有建树答主
回答量:236
采纳率:66%
帮助的人:75.3万
展开全部
隐藏主窗体,再显示主窗体。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-04-18
展开全部
  1. mdi

  2. win32 api找到窗体focus

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
只想转角偶遇你
2016-01-10 · 超过11用户采纳过TA的回答
知道答主
回答量:25
采纳率:100%
帮助的人:4.9万
展开全部
如果窗体时Default.aspx 那就是Response.Redirect("Dafalt.aspx");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式