在程序中,我们经常使用消息对话框给用户一定的信息提示,如在操作过程中遇到错误或程序异常,经常会使用这种方式给用于以提示。在C#中,MessageBox消息对话框位于System.Windows.Forms命名空间中,一般情况,一个消息对话框包含信息提示文字内容、消息对话框的标题文字、用户响应的按钮及信息图标等内容。C#中允许开发人员根据自己的需要设置相应的内容,创建符合自己要求的信息对话框。
MessageBox消息对话框只提供了一个方法Show(),用来把消息对话框显示出来。此方法提供了不同的重载版本,用来根据自己的需要设置不同风格的消息对话框。此方法的返回类型为DialogResult枚举类型,包含用户在此消息对话框中所做的操作(点击了什么按钮),其可能的枚举值有以下几种:
成员名称 | 说明 |
AbortRetryIgnore | 在消息框对话框中提供“中止”、“重试”和“忽略”三个按钮 |
OK | 在消息框对话框中提供“确定”按钮 |
OKCancel | 在消息框对话框中提供“确定”和“取消”两个按钮 |
RetryCancel | 在消息框对话框中提供“重试”和“取消”两个按钮 |
YesNo | 在消息框对话框中提供“是”和“否”两个按钮 |
YesNoCancel | 在消息框对话框中提供“是”、“否”和“取消”三个按钮 |
开发人员可以根据这些返回值判断接下来要做的事情。
在Show方法的参数中使用MessageBoxButtons来设置消息对话框要显示的按钮的个人及内容,此参数也是一个枚举值,其成员如下表所示:
成员名称 | 说明 |
AbortRetryIgnore | 在消息框对话框中提供“中止”、“重试”和“忽略”三个按钮 |
OK | 在消息框对话框中提供“确定”按钮 |
OKCancel | 在消息框对话框中提供“确定”和“取消”两个按钮 |
RetryCancel | 在消息框对话框中提供“重试”和“取消”两个按钮 |
YesNo | 在消息框对话框中提供“是”和“否”两个按钮 |
YesNoCancel | 在消息框对话框中提供“是”、“否”和“取消”三个按钮 |
在设计中,可以指定上表中的任何一个枚举值所提供的按钮,单击任何一个按钮都会对应DialogResult中的一个值。
在Show方法中使用MessageBoxIcon枚举类型定义显示在消息框中的图标类型,其可能的取值和形式如下表:
成员名称 | 图标形式 | 说明 |
Asterisk | 圆圈中有一个字母i组成的提示符号图标 | |
Error | 红色圆圈中有白色X所组成的错误警告图标 | |
Exclamation | 黄色三角中有一个!所组成的符号图标 | |
Hand | 红色圆圈中有一个白色X所组成的图标符号 | |
Information | 信息提示符号 | |
None | 没有任何图标 | |
Question | 由圆圈中一个问号组成的符号图标 | |
Stop | 背景为红色圆圈中有白色X组成的符号 | |
Warning | 由背景为黄色的三角形中有个!组成的符号图标 |
除上面的参数之外,还有一个MessageBoxDefaultButton枚举类型的参数,指定消息对话框的默认按钮。
下面是一个运用消息对话框的例子:
新建一个Windows应用程序,并从工具箱当中拖拽到窗口里一个按钮,把按钮和窗口的Text属性修改为“测试消息对话框”,双击该按钮,添加如下代码:
DialogResult dr; dr=MessageBox.Show("测试一下消息对话框!","测试测试",MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning,MessageBoxDefaultButton.Button1); if(dr==DialogResult.Yes) MessageBox.Show("你选择的为“是”按钮","系统提示1"); else if(dr==DialogResult.No) MessageBox.Show("你选择的为“否”按钮","系统提示2"); else if(dr == DialogResult.Cancel) MessageBox.Show("你选择的为“取消”按钮","系统提示3"); else MessageBox.Show("你没有进行任何的操作!","系统提示4");
系统运行后,将出现如下界面:
单击按钮“测试消息对话框”,将出现如下消息对话框:
分别单击三个按钮,将出现如下三种情况: