第16章-通用对话框

  • 格式:doc
  • 大小:512.50 KB
  • 文档页数:21

第16章通用对话框前面介绍了Windows窗体应用程序常见的一些操作,如自定义菜单、创建工具栏、SDI和MDI应用程序及常见控件的使用。

本章将介绍Windows窗体中另一类常用的对话框。

在Windows系统中,应用程序如果需要用户选择一个文件或者文件夹,通常会弹出一个对话框用于与用户交互和检索信息。

简言之,对话框就是将其FormBorderStyle 枚举属性设置为FixedDialog的窗体。

您可以使用Windows窗体设计器构造自己的自定义对话框。

可以通过添加控件(例如Label、Textbox和Button)来自定义对话框以满足特定需要。

.NET Framework提供了对话框控件来快速创建对话框。

常用的控件有“打开文件”对话框和消息框等,也可修改它以适合自己的应用程序。

关键技术点学习表16.1 消息框当用户想知道程序运行过程中的相关信息时,可以使用消息框MessageBox来获取信息。

MessageBox是一个预定义对话框,在C#中使用时,都是用MessageBox对象的Show方法显示的。

MessageBox对象是命名空间Systeml.Windows.Forms的一部分,Show是一个静态方法,不需要基于MessageBox类的对象创建事例,就可以使用方法,另外,Show方法是可以重载的,具有很多不同参数的形式。

1.其语法格式一般形式如下:【格式】DialogResult Dir = MessageBox.Show(text,caption,button,icon,defaultbutton,option);【功能】弹出一个消息框,显示相关信息。

【说明】(1)Text:设置消息对话框中的提示文本语句,必须是string类;(2)Caption:可选参数,设置消息对话框的标题,和Text一样,必须是String类;(3)Button:可选参数,设置消息对话框中显示哪些按钮。

(4)Icon:可选参数,设置消息对话框中显示哪个图;(5)Defaultbutton:可选参数,设置消息对话框哪个按钮是默认激活;(6)Option:可选参数,为消息对话框设置一些特殊的选项,如文本对齐方式,指定阅读顺序,是否向系统日志写信息。

【使用说明】(1)MessageBox的参数必须按以上顺序输入。

(2)如果使用MessageBox.Show显示消息对话框,不返回任何值,语法为:MessageBox.Show(text,caption,buttons,icon);2.Button各枚举常量及意义如表16-1所示。

表16-1 Buttons各枚举常量及意3.表16-2 Buttons各枚举常量及意16.1.1 MessageBox显示信息【例16-1】MessageBox显示信息示例。

程序代码如下:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace KeyEvent{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){label1.Text = "";label2.Text = "";}private void Form1_MouseDown(object sender, MouseEventArgs e) {Label1.Text = e.Button.ToString() + "键被按下了";MessageBox.Show(e.Button.ToString() + "键被按下了", "MessageBox示例", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);}private void Form1_MouseUp(object sender, MouseEventArgs e){Label2.Text = e.Button.ToString() + "键被放开了";}}}【程序说明】(1)在窗体上按下对应的鼠标键时,同时在标签和MessageBox上显示相关提示说明。

(2)设置了消息框的标题,并采用了button和icon选项设置了消息框外观。

(3)程序的运行结果如图16-1所示。

图16-1 运行效果图16.1.2 MessageBox接受用户输入消息框MessageBox还可以接受输入。

MessageBox类的Show方法可根据用户选择的不同按钮,返回相应的按钮值,用于确定用户所做选择的值。

可以用整数的形式存储此值;也可使用if语句,比较显示消息框时返回的值。

在这种情况下,可以设置Show方法的button参数和icon,以便显示适当的按钮向用户询问信息。

以一个具体的例子来说明这个问题。

程序代码如下:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace KeyEvent{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){label1.Text = "";label2.Text = "";}private void Form1_MouseDown(object sender, MouseEventArgs e) {label1.Text = e.Button.ToString() + "键被按下了";if (MessageBox.Show(e.Button.ToString() + "键被按下了", "MessageBox示例", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK){label2.Text = "用户所按键为OK键!";}}private void Form1_MouseUp(object sender, MouseEventArgs e){label2.Text = e.Button.ToString() + "键被放开了";}}}【程序说明】(1)MessageBox消息框弹出来以后,用户在MessageBox上按下正确的按钮选项以后,标签上才会有提示信息,否则程序不执行。

(2)程序的运行结果如图16-2所示。

图16-2 运行效果图16.2 对话框的使用CommonDialog是对话框的基类,所以所有对话框的使用方式都是类似的。

公共实例方法是ShowDialog()。

该方法调用受保护的RunDialog()实例方法来显示对话框,并利用用户与对话框交互操作的信息,最终返回一个DialogResult实例。

常用对话框如下:(1)文件对话框(FileDialog) 它又常用到两个:打开文件对话框(OpenFileDialog),保存文件对话(SaveFileDialog)。

(2)字体对话框(FontDialog)。

(3)颜色对话框(ColorDialog)。

(4)浏览文件夹对话框(FolderBrowserDialog)。

(5)打印预览对话框(PrintPreviewDialog)。

(6)页面设置(PrintDialog)。

(7)打印对话框(PrintDialog)。

如果要使用以上对话框,可以利用相应的对话框控件向窗体添加对象。

在程序运行时显示对话框,可以使用ShowDialog方法。

它的一般形式为:【格式】DialogObject.ShowDialog();【说明】所有的这些对话框都封装了一个Windows通用对话框,使该对话框可用于.NET应用程序。

PrintPreviewDialog是一个例外,因为它把自己的元素添加到Windows 窗体上,控制打印预览,所以它并不是一个真正的对话框。

不同对话框所适用的场合:(1)OpenFileDialog可以让用户选择和浏览要打开的文件。

这个对话框可以配置为只允许选择一个文件,也可以选择多个文件。

(2)SaveFileDialog使用户可以为要保存的文件指定一个文件名和路径。

(3)PrintDialog用于选择打印机,并设置打印选项。

(4)PrintPreviewDialog是让用户可以在屏幕上进行打印预览的一种方法,并有一些选项,如缩放等。

(5)FontDialog可以为用户列出所有已安装的Windows字体、字号和样式及各种字体的预览效果。

以方便用户选择字体。

(6)ColorDialog类用于颜色的选择。

(7)FolderBrowserDialog可以让用户选择和创建目录。

16.3 文件对话框OpenFileDialog和SaveFileDialog类派生自FileDialog抽象基类,该基类提供了对于打开和关闭文件对话框来说都相同的文件功能。

下面分别对这两个对话框进行介绍。

16.3.1 打开文件对话框(OpenFileDialog)打开文件对话框(OpenFileDialog)是一个预先定义的对话框类,包括显示样式和方法等。

它与Windows中常见的“打开文件”对话框相同。

在Windows应用程序中可以将该组件用作简单的文件选择方案,快速创建用户所熟悉的应用程序。

1.OpenFileDialog控件的主要属性如表16-3所示。

表16-3 OpenFileDialog控件的主要属性2.OpenFileDialog控件常用事件如表16-4所示。

表16-4 OpenFileDialog控件常用事件3.OpenFileDialog的效果如图16-3所示。

图16-3 “打开文件”对话框4.相关操作示例代码private void button1_Click(object sender, System.EventArgs e){Stream myStream;OpenFileDialog openFileDialog1 = new OpenFileDialog();openFileDialog1.InitialDirectory = "c:\\" ;openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files(*.*)|*.*" ;openFileDialog1.FilterIndex = 2 ;openFileDialog1.RestoreDirectory = true ;if(openFileDialog1.ShowDialog() == DialogResult.OK){if((myStream = openFileDialog1.OpenFile())!= null){// Insert code to read the stream here.myStream.Close();}}}16.3.2 保存文件对话框(SaveFileDialog)保存文件对话框(SaveFileDialog)与Windows的“保存文件”相同。