当前位置:嗨网首页>书籍在线阅读

10-模态对话框与非模态对话框

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

13.3.1 模态对话框与非模态对话框

对话框按显示方式分为模态对话框和非模态对话框。

1.模态对话框

模态对话框就是指当对话框弹出、显示的时候,用户不能单击这个对话框之外的界面区域。除对话框上的对象外,用户不能针对其他任何界面对象通过键盘或鼠标单击进行任何输入。用户要访问界面上的其他对象,必须先关闭模态对话框。模态对话框通常用来限制用户必须完成指定的操作任务。例如,Microsoft Word的“字体”对话框。模态对话框使用ShowDialog方法显示。

ShowDialog方法返回一个DialogResult值,它告诉用户对话框中的哪个按钮被单击。DialogResult是一个枚举类型,对话框中一般都有【OK】和【Cancel】按钮,这两个按钮很特殊,按【Enter】键与单击【OK】按钮等效,而按【Esc】键与单击【Cancel】按钮等效。于是, DialogResult的最常用枚举值:DialogResult.OK,用户单击【OK】按钮后返回该值;DialogResult.Cancel,用户单击【Cancel】按钮后返回该值。

2.非模态对话框

非模态对话框通常用于显示用户需要经常访问的控件和数据,并且在使用这个对话框的过程中需要访问其他用户界面对象的情况。用户要访问界面上的其他对象,不必关闭非模态对话框。例如,Microsoft Word的“查找和替换”对话框。非模态对话框使用Show方法显示。

由于窗体Form类派生于对话框Dialog类,与对话框有模态和非模态显示之分类似,窗体也有模态和非模态显示之分。若有调用语句“form1.ShowDialog( );”,则说明是以模态对话框方式显示form1窗体,即用户必须操作完该窗体并关闭后,才能再操作应用程序的主窗体等其他窗体对象。若有调用语句“form2.Show ( );”,则说明是以非模态对话框方式显示form2窗体,即用户不必操作完该窗体并关闭后,再操作应用程序的主窗体等其它窗体对象,也就是说,用户可以在form2窗体和其他窗体之间任意切换,互不影响。