浅谈C#中show和showDialog的区别

本文详细介绍了在WinForm中如何使用两种不同的方法显示窗体:Form.ShowDialog 和 Form.Show。这两种方法的区别在于前者使窗体成为模式窗体,阻止用户交互直至关闭;后者则显示无模式窗体,允许用户同时操作其他窗口。文章还解释了如何判断窗体是否为模式窗体,并提供了关于如何正确管理和处置模式窗体的重要注意事项。

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

【转载】

A.WinForm中窗体显示  
显示窗体可以有以下2种方法:  
Form.ShowDialog方法 (窗体显示为模式窗体)  
Form.Show方法 (窗体显示为无模式窗体)  


2者具体区别如下:  
1.在调用Form.Show方法后,Show方法后面的代码会立即执行  
2.在调用Form.ShowDialog方法后,直到关闭对话框后,才执行此方法后面的代码  
3.当窗体显示为模式窗体时,单击“关闭”按钮会隐藏窗体,并将DialogResult属性设置为DialogResult.Cancel  
与无模式窗体不同,当用户单击对话框的关闭窗体按钮或设置DialogResult属性的值时,不调用窗体的Close方法  
实际上是把窗体的Visible属性赋值为false,隐藏窗体了  
这样隐藏的窗体是可以重新显示,而不用创建该对话框的新实例  
因为未关闭窗体,所以在应用程序不再需要该窗体时,请调用该窗体的Dispose方法  


怎么判断一个窗体是模式窗体呢?  
利用Form.Modal属性,如果该窗体是模式显示,则为true,否则为false  
根据通过Show和ShowDialog而显示出来的窗体的Modal属性分别对应false和true  
特别注意:  
由于在窗体创建之前是无法得知显示方式的,所以在窗体构造函数中,Modal属性总是对应false,所以我们只能在Load事件中或者之后利用Modal属性值 

转载于:https://www.cnblogs.com/numen-fan/p/7515531.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值