经典问题 C#隐藏和显示窗体

本文介绍在C#中如何实现窗体A点击按钮后打开窗体B并隐藏自身,当窗体B关闭时窗体A自动显示的方法。通过使用模式对话框ShowDialog和设置DialogResult属性,实现窗体间的联动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://zhidao.baidu.com/question/82711899.html

C#隐藏和显示窗体

悬赏分:10 - 解决时间:2009-1-18 13:28
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窗体里使用?它的值不会因为当前窗体已经死亡而销毁?还是另有他因?麻烦帮忙解说下,谢谢!
提问者: 额_为何

最佳答案

使用模式对话框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; 

够清楚了吧! 

回答者: flag5 -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值