当前位置:首页 > C# > 正文内容

C#中的MessageBox消息对话框

admin7年前 (2017-04-25)C#4965

在程序中,我们经常使用消息对话框给用户一定的信息提示,如在操作过程中遇到错误或程序异常,经常会使用这种方式给用于以提示。在C#中,MessageBox消息对话框位于System.Windows.Forms命名空间中,一般情况,一个消息对话框包含信息提示文字内容、消息对话框的标题文字、用户响应的按钮及信息图标等内容。C#中允许开发人员根据自己的需要设置相应的内容,创建符合自己要求的信息对话框。

MessageBox消息对话框只提供了一个方法Show(),用来把消息对话框显示出来。此方法提供了不同的重载版本,用来根据自己的需要设置不同风格的消息对话框。此方法的返回类型为DialogResult枚举类型,包含用户在此消息对话框中所做的操作(点击了什么按钮),其可能的枚举值有以下几种:

  成员名称       说明
  Abort   用户单击“中止”按钮的返回值
  Cancel   用户单击“取消”按钮的返回值
  Igore   用户单击“忽略”按钮的返回值
  No   用户单击“否”按你的返回值
  None   强制响应(Modal)对话框继续执行,对话框没有返回任何信息
  OK   用户单击“确定”按钮的返回值
  Retry   用户单击“重试”按钮的返回值
  Yes   用户单击“是” 按钮的返回值

开发人员可以根据这些返回值判断接下来要做的事情。

在Show方法的参数中使用MessageBoxButtons来设置消息对话框要显示的按钮的个人及内容,此参数也是一个枚举值,其成员如下表所示:

  成员名称       说明
  AbortRetryIgnore   在消息框对话框中提供“中止”、“重试”和“忽略”三个按钮
  OK   在消息框对话框中提供“确定”按钮
  OKCancel   在消息框对话框中提供“确定”和“取消”两个按钮
  RetryCancel   在消息框对话框中提供“重试”和“取消”两个按钮
  YesNo   在消息框对话框中提供“是”和“否”两个按钮
  YesNoCancel   在消息框对话框中提供“是”、“否”和“取消”三个按钮

 在设计中,可以指定上表中的任何一个枚举值所提供的按钮,单击任何一个按钮都会对应DialogResult中的一个值。

在Show方法中使用MessageBoxIcon枚举类型定义显示在消息框中的图标类型,其可能的取值和形式如下表:

  成员名称 图标形式   说明
  Asterisk MessageBox消息对话框- 翔宇亭IT乐园  圆圈中有一个字母i组成的提示符号图标
  Error MessageBox消息对话框    红色圆圈中有白色X所组成的错误警告图标
  Exclamation  MessageBox消息对话框  黄色三角中有一个!所组成的符号图标
  Hand  MessageBox消息对话框  红色圆圈中有一个白色X所组成的图标符号
  Information MessageBox消息对话框   信息提示符号
  None    没有任何图标
  Question MessageBox消息对话框   由圆圈中一个问号组成的符号图标
  Stop MessageBox消息对话框   背景为红色圆圈中有白色X组成的符号
  Warning MessageBox消息对话框   由背景为黄色的三角形中有个!组成的符号图标

除上面的参数之外,还有一个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");

系统运行后,将出现如下界面:

MessageBox消息对话框

单击按钮“测试消息对话框”,将出现如下消息对话框:

MessageBox消息对话框

分别单击三个按钮,将出现如下三种情况:

MessageBox消息对话框MessageBox消息对话框MessageBox消息对话框





1.MessageBox.Show(“Hello~~~~”);

最简单的,只显示提示信息。

2.MessageBox.Show(“There are something wrong!”,“ERROR”);

  可以给消息框加上标题。

3.if (MessageBox.Show(“Delete this user?”“Confirm Message”MessageBoxButtons.OKCancel) == DialogResult.OK)

{

   //delete

}

询问是否删除时会用到这个。

4.if (MessageBox.Show(“Delete this user?”“Confirm Message”MessageBoxButtons.OKCancel,MessageBoxIcon.Question) == DialogResult.OK)

{

    //delete

}

可以给MessageBox加上一个Icon,.net提供常见的Icon共选择。

5.if (MessageBox.Show(“Delete this user?”“Confirm Message”MessageBoxButtons.OKCancel, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2) == DialogResult.OK)

{

   //delete

}

可以改变MessageBox的默认焦点,如下:

6.if (MessageBox.Show(“Delete this user?”“Confirm Message”MessageBoxButtons.OKCancel, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2,MessageBoxOptions.RtlReading) ==DialogResult.OK)

{

   //delete

}

反向显示:

7.if (MessageBox.Show(“Delete this user?”“Confirm Message”MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign,true) == DialogResult.OK)

{

    //delete

}

添加Help按钮:

8.if (MessageBox.Show(“Delete this user?”“Confirm Message”MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading, @”/folder/file.htm”) == DialogResult.OK)

{

   //delete

}

指定帮助文件的路径,点击即可打开该路径下的帮助文件。

9.//HelpNavigator指定常数来指示要显示的帮助文件元素。Find 帮助文件将打开到搜索页。 

if (MessageBox.Show(“Delete this user?”“Confirm Message”MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading, @”/folder/file.htm”HelpNavigator.Find) == DialogResult.OK)

{

    //delete

}

还有一些用法,不是太实用这里就不一一介绍了,有兴趣的朋友可以参考下这里:MSDN的MessageBox类。


扫描二维码推送至手机访问。

版权声明:本文由视觉博客发布,如需转载请注明出处。

本文链接:https://feelsight.cn/post/35.html

“C#中的MessageBox消息对话框” 的相关文章

基于C#的socket编程的TCP异步实现

基于C#的socket编程的TCP异步实现

一、摘要  本篇博文阐述基于TCP通信协议的异步实现。 二、实验平台  Visual Studio 2010 三、异步通信实现原理及常用方法3.1 建立连接   在同步模式中,在服务器上使用Accept方法接入连接请求,而在客户端则使用Connect方法来连接服务器。相对地,在异...

 C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果)

C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果)

一、各种旋转、改变大小 注意:先要添加画图相关的using引用。 //向右旋转图像90°代码如下: private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) {...

安装包制作工具 SetupFactory使用1 详解

安装包制作工具 SetupFactory使用1 详解

Setup Factory 是一个强大的安装程序制作工具。提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序。可建立快捷方式,也可直接在 Windows 系统的注册表加入内容,还能在 Win.ini 和 System.ini 内加入设定值,更可以建立反安装选...

C#全局监听Windows键盘事件

1.工具类代码 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Windows...

c# 委托实现多线程的实例/另一个class类调用控件

c# 委托实现多线程的实例/另一个class类调用控件

一、使用线程在窗体中显示进度条 在Winform应用程序中,经常用进度条显示进度信息。这时候就可能用到多线程。如果不采用多线程控制进度条的话,窗口界面很容易假死(无法看到进度信息,看起来像界面卡住了)。 在这个实例中,我们建立一个窗体,窗体中包括一个后台组件,一个进度条控件。当在主窗...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。