码迷,mamicode.com
首页 > 其他好文 > 详细

Form.Show()与Form.ShowDialog()的区别

时间:2014-05-15 11:57:42      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:style   class   c   color   http   com   

一 基本概念

首先,窗体和对话框的显示有两种方式:有模式&无模式。 

有模式:显示重要消息的对话框应始终是有模式的,“模式”窗体或对话框必须关闭或隐藏,然后您才能继续使用应用程序的其余部分,例如 MessageBox 就是一个可供使用的有模式的窗体。

无模式:“无模式”窗体让您在此窗体与另一窗体之间变换焦点,而不必关闭初始窗体。用户在该窗体显示的同时可继续在任何应用程序的其他位置工作。

 

二 实现

1.将窗体显示为有模式对话框:

Form.ShowDialog()方法,返回值是枚举类型的System.Windows.Forms.DialogResult。

Close button (the button with an X at the upper-right corner of the form) causes the form to be hidden and the DialogResult property to be set to DialogResult.Cancel.‘ data-guid="7ec0929e974b892962b7c757051f7e67">当窗体显示为模式对话框时,单击“关闭”按钮(窗体右上角带 X 的按钮)会隐藏窗体并将 DialogResult 属性设置为 DialogResult.Cancel 

Close method is not called by the .NET Framework when the user clicks the close form button of a dialog box or sets the value of the DialogResult property.‘ data-guid="b5bc7fb4411256e8d8459b1dc64eeb97">与非模式窗体不同,当用户单击对话框的关闭窗体按钮或设置 DialogResult 属性的值时,.NET Framework 不调用 Close 方法 窗体转而可以隐藏并可重新显示,而不用创建该对话框的新实例。  method of the form when the form is no longer needed by your application.‘ data-guid="093914f23a5520e4d56db249a90549dc">因为隐藏而非关闭显示为对话框的窗体,所以在您的应用程序不再需要该窗体时,必须调用该窗体的 Dispose 方法。

重载方法是  Form.ShowDialog (IWin32Window),将窗体显示为具有指定所有者的模式对话框:

参数owner 类型:System.Windows.Forms.IWin32Window 任何实现 IWin32Window(表示将拥有模式对话框的顶级窗口)的对象。

2.显示非模式窗体:

Form.Show()方法,无返回值类型。

重载方法是 Form.Show (IWin32Window),调用该方法等同于设置非模式的 Owner 属性,然后调用 Show() 方法。

显示窗体等效于将 Visible 属性设置为 true。 在调用 Show 方法之后,只要不调用 Hide 方法,Visible 属性就返回 true 值。

当窗体显示为无模式对话框时,单击“关闭”按钮(窗体右上角带 X 的按钮)后 .NET Framework 会调用 Close 方法,进而执行Dispose 方法。

 

Form.Show()与Form.ShowDialog()的区别,布布扣,bubuko.com

Form.Show()与Form.ShowDialog()的区别

标签:style   class   c   color   http   com   

原文地址:http://www.cnblogs.com/mingshu/p/3729379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!