`
xiaxueducun
  • 浏览: 1452 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

<转载>C#中Show()和ShowDialog()的区别

    博客分类:
  • C#
 
阅读更多

窗体和对话框要么是有模式的,要么是无模式的。“模式”窗体或对话框必须关闭或隐藏,然后您才能继续使用应用程序的其余部分。

显示重要消息的对话框应始终是有模式的。模式对话框的一个示例是 Visual Studio 中的“关于”对话框。MessageBox是您可以使用的一个模式窗体。有模式对话框显示出来以后,那么开始打开的窗体或对话框就不能再获得焦点了。

“无模式”窗体让您在此窗体与另一窗体之间变换焦点,而不必关闭初始窗体。用户在该窗体显示的同时可继续在任何应用程序的其他位置工作。例如:文本编辑软件里面的搜索功能,就是一个无模式的,因为搜索对话框出来以后,还可以操作编辑本文,即它不影响其他窗体获得焦点。

  将窗体显示为有模式对话框用form1.ShowDialog()方法。这个方法有一个可选参数 owner,该参数可用于指定窗体的父子关系。例如:

在Form1代码段中:

Form2 f2=new Form2();

f2.ShowDialog(this);//this表示Form1当前实例

这样f2实例就和Form1实例建立了一个父子关系,可以相互通讯。

如果没有使用f2.ShowDialog(this)而直接使用的是无参的,要定义父子关系,则需要语句f2.owner=this;

 将窗体显示为无模式对话框则用form1.show()方法。

注意   如果窗体显示为有模式,则在关闭该对话框之前,不执行 ShowDialog 方法后面的代码。但是,当窗体显示为无模式时,那么该窗体显示之后,会立刻执行 Show 方法后面的代码。

 

转自:<maicar1235>

分享到:
评论

相关推荐

    C# 非模态窗体(show)实现模态窗体(ShowDialog)的效果

    C# 非模态窗体(show)实现模态窗体(ShowDialog)的效果

    浅谈C# 非模式窗体show()和模式窗体showdialog()的区别

    下面小编就为大家带来一篇浅谈C# 非模式窗体show()和模式窗体showdialog()的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    C# Socket聊天室例子

    private List&lt;Stroke&gt; _strokeList = new List&lt;Stroke&gt;(); private List&lt;Stroke&gt; _endgoing = new List&lt;Stroke&gt;(); private bool _drawing = false; private Point _startDraw = new Point(); private Bitmap _...

    C#工资考勤系统源代码.ra

    /// &lt;param name="SelectText"&gt;&lt;/param&gt; private void ListviewShow(string SelectText) { ltvSelect.Items.Clear(); foreach (XmlNode Empnode in ListEmp) { if (SelectText != "") { if (Empnode....

    C# 非模态窗体(show)实现模态窗体(ShowDialog)的效果 .rar

    C# 非模态窗体(show)实现模态窗体(ShowDialog)的效果 .rar

    FTP上传C#源码

    }"&gt;C#关于FTP文件上传的源码 if ftpClient null { OpenFileDialog open new OpenFileDialog ; if open ShowDialog DialogResult OK { try { ftpClient Put open FileName ; ...

    form窗体之间传值

    /// &lt;param name="Value"&gt;&lt;/param&gt; private void SetTextBoxValue(string Value) { textBox1.Text = Value; } private void button1_Click(object sender, EventArgs e) { //方法一:用单例模式 Form2....

    C#+sql宿舍管理系统

    /// &lt;summary&gt; /// Form1 的摘要说明。 /// &lt;/summary&gt; public class Login : System.Windows.Forms.Form { private System.Windows.Forms.Button btClose;//取消按钮 private System.Windows.Forms.Button...

    C#100例题 献给c#初学者

    给初学者的简单例题! private System.ComponentModel.IContainer components; ... else if ((p.X &gt; PaddleRect.Left + PaddleRect.Width/4) && (p.X &lt;= PaddleRect.Left + PaddleRect.Width/2)) ...

    API精灵源码(C#编)

    2004.03.09 完成对&lt;函数类&gt;的查询功能,包括 代码调用,中文注释,所需的DLL库,与C#中函数对应关系 2004.03.10 0:48:52 完成了用StringBuilder数组对原ComboBox的替换,可以使程序不用从新读取数据库就可以刷新...

    将彩色图片转换为灰度图片程序(C#源代码编写)if(this.openFileDialog1.ShowDialog()==DialogResult.OK)

    将彩色图片转换为灰度图片程序(C#源代码编写)if(this.openFileDialog1.ShowDialog()==DialogResult.OK) { bmp=new Bitmap(this.openFileDialog1.FileName); for (int i=0;i&lt;bmp.Width-1;i++) { ...

    C# 加密解密 将自己的文件加密

    C# 加密解密 将自己的文件加密 //选择加密、解密文件 private void button1_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { textBox1.Text = openFileDialog1....

    C#,winform,ShowDialog,子窗体向父窗体传值

    窗体的show方法,没有给调用代码任何通知,如果需要通知,使用showdialog是一种好的选择。 在调用show方法后,show方法后面的代码会立即执行,

    ClinicalOffice.WPF.Dialogs:一个小的库,允许开发人员创建对话框并在WPF ContentControls中显示它们

    从DialogBase类继承并使用XAML设计器创建对话框,然后如果不需要对话框结果,则可以使用void DialogBase.ShowDialog(ContentControl parent = null)方法显示它,或者可以使用异步/等待模式方法Task&lt;DialogResult&gt; ...

    C#图书馆管理信息系统

    /// &lt;summary&gt; /// Form1 的摘要说明。 /// &lt;/summary&gt; public class login : System.Windows.Forms.Form { private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; ...

    c# 注册模块Dll 直接调用就行

    if (abc.ShowDialog() == DialogResult.OK) { this.Text = "已注册版本"; } else { Application.Exit(); } } catch (Exception) { MessageBox.Show("重要dll,丢失!"); Application.Exit(); } }

    C# for CSDN 乱七八糟的看不懂

    C#(WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 ...

    WinForm C#多线程等待窗体

    由于用到了非托管资源,最简单的方式是把托管资源(WaitForm)放在工作线程,线程结束,窗体会自动销毁,不用自己写清理代码。 ShowDialog自动阻塞当前线程,这使它成为最优的解决方式。

    c#编写的简单记事本程序

    c#编写的简单记事本程序,private void 新建ToolStripMenuItem_Click(object sender, EventArgs e) { if (richTextBox1.Modified == true) { DialogResult dr = MessageBox.Show("要保存正在編輯的文件嗎?", ...

Global site tag (gtag.js) - Google Analytics