Previous topicNext topic
Help > 开发指南 > 编程基础 > 弹出对话框 >
MessageBox

MessageBox

MessageBox是显示消息窗口(也称为对话框),向用户展示消息。 这是一个模式窗口,可阻止应用程序中的其他操作,直到用户将其关闭。主要达到两种目的,一种是将一些信息以弹出窗口的方式通知用户。这些信息可以是任务完成提示,也可以是任务执行出错信息。还有一种就是弹出询问窗口,让用户选择某个选项,比如“确定”或“取消”。

MessageBox只有一个方法Show,它有非常多的重载,如果一个个去研究这么多的重载非常没有必要,我们只需要记得一个即可。其他的重载如果有兴趣的话可以通过“显示定义”来查看、研究。下面列出的四个参数只有第一个text参数是必填项,其他参数因为都有相应的(没有此参数的)重载,所以我们可以把它们看作是可选参数。

参数

参数名称  说明
text 要在消息框中显示的文本。用来通知用户相关信息或询问用户如何选择。
caption 可选参数,指定要在消息框的标题栏中显示的文本。默认为空,
buttons

可选参数,MessageBoxButtons枚举值之一,可指定在消息框中显示哪些按钮。默认值为OK,如果不填写的话,默认显示“确定”按钮。MessageBoxButtons型枚举包括以下可选值:

        //消息框包含确定按钮。
        OK = 0,
        //消息框中包含确定和取消按钮。
        OKCancel = 1,
        //消息框包含中止、 重试和忽略按钮。
        AbortRetryIgnore = 2,
        //消息框包含是,否,,,取消按钮。
        YesNoCancel = 3,
        //消息框包含是和无按钮。
        YesNo = 4,
        //消息框包含重试和取消按钮。
        RetryCancel = 5
icon

可选参数,MessageBoxIcon枚举值之一,它指定在消息框中显示哪个图标。默认值为None,如果不填写的话,默认什么图标都不显示。MessageBoxIcon型枚举包括以下可选值:

        //消息框未包含符号。
        None = 0,
        //消息框包含一个符号,该符号包含一个红色背景圆圈,圆圈中为白色 X 符号。
        Hand = 16,
        //消息框包含一个符号,该符号包含一个红色背景圆圈,圆圈中为白色 X 符号。
        Error = 16,
        //消息框包含一个符号,该符号包含一个红色背景圆圈,圆圈中为白色 X 符号。
        Stop = 16,
        //消息框包含一个符号,该符号包含一个圆圈,圆圈中为问号。 不再建议使用问号消息图标,因为这种图标无法清楚地表示特定类型的消息,并且作为问题的消息表述可应用于任何消息类型。 此外,用户可能会将问号消息符号与帮助信息混淆。 因此,不要在消息框中使用问号消息符号。 系统继续支持它包含的内容,只为满足反向兼容性。
        Question = 32,
        //消息框包含一个符号,该符号包含一个黄色背景三角形,三角形中为感叹号。
        Exclamation = 48,
        //消息框包含一个符号,该符号包含一个黄色背景三角形,三角形中为感叹号。
        Warning = 48,
        //消息框包含一个符号,该符号在圆圈中包含小写字母 i。
        Asterisk = 64,
        //消息框包含一个符号,该符号在圆圈中包含小写字母 i。
        Information = 64

VB.Net
 
'仅有提示信息
MessageBox.Show("我只想提示一个信息")
'包含标题、按钮控制、图标
MessageBox.Show("我是一个还标题的提示框!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
'拥有返回结果的提示框
If MessageBox.Show("确定要删除当前行吗?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.Yes Then
    If Proj.CurrentGrid IsNot Nothing AndAlso Proj.CurrentGrid.CurrentRowData IsNot Nothing Then
        Proj.CurrentGrid.CurrentRowData.Delete()
    End If
End If

 C#
// 仅有提示信息
MessageBox.Show("我只想提示一个信息");
// 包含标题、按钮控制、图标
MessageBox.Show("我是一个还标题的提示框!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
// 拥有返回结果的提示框
if (MessageBox.Show("确定要删除当前行吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
    if (Proj.CurrentGrid != null && Proj.CurrentGrid.CurrentRowData != null)
    {
        Proj.CurrentGrid.CurrentRowData.Delete();
    }
}

上面的代码运行的效果如下: