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

对话框不是模式就是无模式的。模式对话框,在可以继续操作应用程序的其他部分之前,必须被关闭(隐藏或卸载)。例如,如果一个对话框,在可以切换到其它窗 体或对话框之前要求先单击“确定”或“取消”,则它就是模式的。

一、如何调用

任何窗体(派生于基类Form的类),都可以以两种方式进行显示。
//非模式窗体
From qform=new Form();
qform.Show();
//模式窗体
Form qform=new Form();
qform.ShowDialog();

一、控制权上的区别

Form.Show创建新窗体后(非模式),立即返回,且没有在当前活动窗体和新窗体间建立任何关系,即在保持新窗口的情况下关闭(或最小化)现有 窗体或在保留现有窗体情况下关闭(或最小化)新窗口,都是可以的。

Form.ShowDialog创建模式窗体,即只有当建立的新窗口关闭之后,原有窗体才能重新获得控制权。即如果不关闭新窗口,将无法对原活动窗 口进行任何操作。对新窗口进行的最小化、还原将会和原窗口一起进行,但是新窗口的关闭对原窗口没有影响。

需要注意的是,不管是何种情况,只要主窗体被关闭了,或主程序结束了,那么Application.Run将会关闭所有窗体,不管它是模式还是非模 式。

二、Owner属性带来了什么

上面所讲的是不建立拥有关系时的窗体。当为窗体间建立了拥有关系,情况就会有所变化。

1、首先看非模式的情况。为非模式新窗口建立拥有关系的方法是修改其Owner属性。(默认情况下,非模式窗口不存在拥有者)

form.Owner=this; //假设当前窗口是新窗口的拥有者
form.Show();

很显然,新建的非模式窗体已经被认为是原活动窗体的子窗体,原窗口的行为将会影响新窗口,所以我们姑且把它们称作父窗口和子窗口之间的关系。

那么,改动后会有什么显著的变化呢?主要有两点:

第一,父窗口最小化、还原或关闭,子窗口也将随之最小化、还原或关闭。(注意,在未添加拥有关系之前它们是互不相干的。)反过来,子窗口的最小化、 还原或关闭对父窗口不构成影响。

第二、在任务栏上,只显示父窗体的图标而不显示子窗体的图标。(在父子关系诞生之前,各窗体在任务栏上有各自图标。)

2、模式窗体的情况下。用ShowDialog方法显示新窗体时,当前窗体被认为是新窗体的逻辑拥有者。所谓逻辑拥有者,是指默认情况下,用 ShowDialog而明确指定拥有者的话,Owner值为null。但无论Owner属性设置与否,与用户的交互行为都是一样的。

设置Owner属性的方法除了同上述Show情况下的那种之外,还有一种,即当作ShowDialog的参数传递。如:

form.ShowDialog(this); //当前窗体为新窗体的拥有者。

也就是说,如果你指定了第三个窗体为新模式窗口的Owner,的确,新窗口和原窗口可能断绝了关系,而是作为第三个窗口的子窗口的身份出现。但是事 实上,它们间的这种父子关系的建立并没有在行为上给我们带来跟多惊喜。比如,新窗口关闭前,父窗口还是不能获得控制权等等,一切行为都没有变。

三、总结与说明

1、Show方法创建的窗体在行为上具有不确定性,Owner属性对此责任重大。

2、当前活动窗口和用ShowDialog创建的模式窗口之间有着与生俱来的关系,这一关系的承载者是可以改变的,但是这一关系的建立或解除并不能 给窗体的行为带来任何变化。

3、一个窗体可以拥有一个可选的拥有者,同时可以成为多个窗体的拥有者。

4、这里所指的子窗体和父窗体并不是真正意义上的,而是为了加深理解而杜撰出来的不科学的称法。应与window窗体术语中的父窗体和子窗体区分 开,不可混淆。后者存在边缘裁剪。

时间: 2024-09-20 17:49:08

浅谈C# 非模式窗体show()和模式窗体showdialog()的区别_C#教程的相关文章

浅谈异常结构图、编译期异常和运行期异常的区别_java

异常处理一般有2种方式,要么捕获异常try-catch,要么抛出异常throws 如果一个方法后面抛出一个运行时期异常(throws RuntimeException),调用者无须处理 如果一个方法后面抛出一个编译时期异常,调用者必须处理,或者抛出或者try-catch: 运行时期的异常一般都不处理,一般是程序逻辑上的错误,比如分母为0作为除数了... 注意如果在try里面出现了异常后,try下面的语句就不会执行,回去寻找catch匹配异常处理会,接下来的语句会处理的(也就是在try-catch

浅谈C#中ToString()和Convert.ToString()的区别_C#教程

浅谈ToString()和Convert.ToString()方法的区别 一.一般用法说明 ToString()是Object的扩展方法,所以都有ToString()方法;而Convert.ToString(param)(其中param参数的数据类型可以是各种基本数据类型,也可以是bool或object类对象. 二.ToString()和Convert.ToString()的区别 一般情况下,这两种方法都可以通用,但是当返回的数据类型中有可能出现null值时如果调用ToString方法了,就会返

圈圈-浅谈个人网站发展和赚钱的模式-选择篇

个人网站|赚钱  做站前你要估计你自己的能力适合做什么站,金钱,技术和网络运行方面的知识和你的长期积累的经验有多少,这个是很关键的!我们不去谈那些经济实力很强和那些专业提供技术服务的站点,我所谈的是在网络中盲目徘徊的站长你们应该怎么样去做站和去赚钱,希望从中可以对那些没有发展起来的站长给予一种启发,因为我相信个人站长永远比公司的来的强,无论在工作时间和勤奋态度上都是行业的佼佼者!      首先你要去考虑你想做什么,通过那些渠道去赚钱,你准备投资多少,你想出名还是只想赚钱还是想两者皆顾?这个问题

浅谈教育培训类网站的盈利模式

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 随着我国网络的不断普及,教育培训类网站也有了很大的市场,目前我国的考试大大小小不计其数,包括资格考试如计算机级别考试,司法考试,注册会计师考试等.认证考试类考试如cisco考试等,那么随着我国远程教育的不断发展,教育培训类网站该怎样发展呢?应该以怎样的模式去盈利呢?以下是本人的一些拙见: 1. 首先在确定盈利模式之前,我们应当使我们的网站有以

中小网站的收益浅谈:关于流量转化和盈利模式

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 本文的主要内容是说下个人对网站的流量.盈利模式和其收益之间关系的浅薄认识,在这之前,先解释一下这四个概念.首先是网站的流量,也就是网站的访问量,一般有IP.PV.UV等方式来统计访问量的大小,IP是指网站获得了来自不同IP的的访问,一个IP访问则记录一个IP.UV是指网站的独立访客,它记录的独立的cookie数,也就是访问网站的独立的计算机数

浅谈现代企业中性能分析的反模式

什么是性能分析 "性能分析"一词有许多种定义,但在我看来最有用的一个是: 一种由测量驱动的方法,用以了解一个应用程序在负载下的行为. 这个定义的好处是,它提醒您注意测量是整个过程的关键点.并通过简单的延伸,也提醒您统计和数据分析可能是性能工程师的重要工具. 进一步讲,它使我们更相信应把性能分析看作是一项基础的实证研究活动,是它把输入和输出粘合在一起组成实验科学. 这样,这些输出就可以被框定为一系列具有量化答案的问题,比如: 如果有10倍的客户数,系统还有足够的内存来应付吗? 在客户看来

浅谈软件下载站有哪些盈利模式

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 虽然说现在的软件下载站不像之前那么火爆了,不过软件下载网站的盈利模式却有很多,所以对很多个人站长的吸引力还是比较大的,下面就让笔者给大家介绍几种常见的软件下载站的盈利模式!希望能够给大家做一下参考! 一:利用弹窗广告的模式来赚钱,虽然弹窗广告这种模式已经被很多正规的网站所抛弃了,不过对于垃圾网站来说还是有相当不错的诱惑力的,很多下载类的网站可

浅谈互联网未来站长发展的新模式

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 古有曹刘孙瓜分天下魏蜀吴,今有曹丁张瓜分门户新网狐.三国争分天下曹操终成一霸,而门户多争始终未分夺胜负,各霸一方,三国多年奋战,遭殃的无疑是百姓,互联网局势随不能以奋战来形容,暂且不提门户,只讲站长风云.2009年某年某月,互联网迎来了冬天,这个冬天是突然袭击,以至于部分站长都未做好防寒准备,就被一刀切的方式给打入了冷宫,本人也是站长之一,深

浅谈三种C2B电商的模式

在过去的一年中,电商领域可谓是血雨腥风,尤其是天猫.京东.苏宁.当当.易讯等B2C电商之间的战争.伴随着B2C领域竞争进入白热化阶段,C2B模式也在天猫"双11"的预售后,渐渐被很多人知道. 如今的中国电商市场,毫无疑问,C2C领域淘宝是绝对王者,B2C领域中平台式的天猫也是第一,而自主式的京东.易讯.苏宁等几家在争夺第二的路上,并没有给其它人机会,但是目前的C2B领域还是有一定的空白,C2B领域可能会是电商的另一条路或下一个方向吗? 其实C2B的概念是很泛化,形式也是有很多种,一号店