C#隐藏和显示窗体

Main方法启动窗体A,现在点击窗体A的一个按钮,打开窗体B,这时窗体A隐藏。当关闭窗体B时,窗体A再显示出来!我只知道隐藏是this.Visible=false;那么如... Main方法启动窗体A,现在点击窗体A的一个按钮,打开窗体B,这时窗体A隐藏。当关闭窗体B时,窗体A再显示出来!
我只知道隐藏是this.Visible = false;那么如何当窗体B关闭时自动执行this.Visible = true;呢?
请“314674839”说明白,怎么写?
“ kyhx123”说的a.high确实可以隐藏当前窗体,但是至于显示刚才隐藏的那个窗体不明白应该写在什么地方?
“cnfczn”写的方法没看明白哎...俺是初入C#
“flag5”写的方法确实已经实现我的要求,想问下this.DialogResult他在B窗体赋值可以在A窗体里使用?它的值不会因为当前窗体已经死亡而销毁?还是另有他因?麻烦帮忙解说下,谢谢!
展开
 我来答
乐海白35
推荐于2019-10-31 · TA获得超过284个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

1、第一种解法:

由窗体A自己控制是否隐葳。在按钮事件中加如下代码。

this.Visible = false;

Form2 f2 = new Form2();

f2.ShowDialog(); //此处不可用f2.Show();

this.Visible = true; //form2关闭后,会执行到本语句

2、第二种解法:

由窗体B控制A是否隐葳。

这就要求Form1将自己作为参数传给Form2,由Form2执行控制。

在Form2中定义新的显示方法。

from fm = null;    //用于存放Form1变量

public void ShowMe(Form f)

{

fm = f;

fm.Visible = false;  //把Form1隐藏

Show();

}

在Form2的FormClose事件中加入代码。

fm.Visible = true;  //让Form1显示

最后是Form1的按钮事件中的代码。

Form2 f2 = new Form2();

f2.ShowMe(this);

注:本题还有其它解决方式。如利用事件处理机制等。

扩展资料:

题中这种操作Form的方式,不要应用于实际项目中。

1、用户体验太差。

实际操作一下,就可以体会到这种方式的怪异。

也可以回想一下以前用过的所有软件,碰到过这种子窗口打开,父窗口隐葳,子窗口关闭,父窗口弹出的操作?

2、有更好的解决方式,可以处理上述问题。

可以使用向导类的处理方式。

flag5
推荐于2017-09-15 · TA获得超过246个赞
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:222万
展开全部
使用模式对话框ShowDialog方式打开窗体B,当窗体B关闭时必然要返回一个DialogResult,默认为none,类似于openfiledialog和savefiledialog

在窗体A的按钮点击事件中写
Form2 form2 = new Form2();
this.Hide();
if (form2.ShowDialog() == DialogResult.OK)
{
this.Show();
}
在窗体B的关闭事件中写
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
this.DialogResult = DialogResult.OK;
}

如果你想通过窗体B的一个按钮来关闭窗体B,就可以在关闭按钮的点击事件中写
this.Close();
this.DialogResult = DialogResult.OK;

够清楚了吧!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kyhx123
2009-01-17 · TA获得超过119个赞
知道答主
回答量:93
采纳率:0%
帮助的人:0
展开全部
有两种方法可以实现
一种是隐藏 a.high//好像是这么写的反正是H开头的一个方法 这个是隐藏窗体
当你关闭窗体b的时候需要显示窗体a
就用 a.show()就可以了 ...

还有一种方法是 关闭窗体a 打开窗体b 这时候就要 在启动项设置里面
加上当 当a 关闭时 打开b 启动 然后b关闭时候还是用 a.show()方法打开a...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linv2
2009-01-17 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:152万
展开全部
用关闭窗口的事件
你仔细看下
当窗口B关闭
Form A=new Form();
A.Show();
因为A是主窗口
所以是被隐藏的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
22...8@qq.com
2009-01-17 · TA获得超过412个赞
知道答主
回答量:341
采纳率:0%
帮助的人:156万
展开全部
你可以在this.close()后面写的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式