C# windows Form 之 MessageBox

本文详细介绍了在WindowsForm程序中使用MessageBox显示信息的功能,包括如何设置消息框的标题、按钮、图标和默认按钮,以及如何通过MessageBox的返回值进行后续操作。

在windows From 程序中消息框(MessageBox)是很常见的,它能非常方便的向用户提供各种显示信息。下面示例用MessageBox来显示每一位程序员都非常熟悉的两个单词。

 class MessageBoxHelloworld
    {
        public static void Main()
        {
            System.Windows.Forms.MessageBox.Show("Hello World!");
        }
    }

当然,用运行上面程序需要在项目中添加引用System,System.Drawing以及System.Windows.Froms.

下面看下MSDN对MessageBox说明:

你不能实例化MessageBox类,为了显示一个消息框你只需要调用MessageBox.Show()即可。至于消息框的标题,内容,按钮以及显示的图标可以通过向Show()方法传入不同的参数来指定。

MessageBox从Object派生而来,除了实现了Object的方法外,MessageBox只实现了一个静态的Show()方法。但是该方法有多种的重载形式,来满足用户的需要。下面一一道来………

 

1.指定消息的标题

  Show()方法的第一个参数是显示的信息内容,第二个参数则是消息的标题内容

 MessageBox.Show("Hello world", "系统信息");//'系统信息'显示在消息框的标题位置

2.显示的按钮

使用枚举MessageBoxButton来指明显示在消息框上的按钮,MessageBoxButton有以下6个成员:

OK , OKCancel , AbortRetryIgnore , YesNoCancel , YesNo , RetryCancel

从字面上就能很容易的指导每个枚举值所代表的按钮。需要说明的是,含有Retry的枚举值现在很少使用,这是MS-DOS在过去当用户试图访问一个由于某种原因

而无法响应的设备(通常是软盘)而显示的消息。

当你需要Ok和Cancel按钮时可以这样调用Show()

MessageBox.Show("Hello World", "System",MessageBoxButtons.OKCancel);

3.指定窗口的图标

消息框一般是用来给用户以提醒的,为了达到更好的提醒效果,需要为消息框指定一个图标(Icon)。.NET中也使用一个枚举来表示多种图标

成员描述
None
Hand红色的背景,一个圆圈中一个白色的X
Stop红色的背景,一个圆圈中一个白色的X
Error红色的背景,一个圆圈中一个白色的X
Question蓝色的背景,一个圆圈中一个白色的?
Exclamation黄色的背景,一个三角中一个黑色的!
Asterisk蓝色的背景,一个圆圈中一个白色的i
Warning黄色的背景,一个三角中一个黑色的!
Information蓝色的背景,一个圆圈中一个白色的i

通过上表可以看出实际上只有4中不同的图标可供选择。

想要现实一个警告可以这样调用Show()

MessageBox.Show("Hello World", "System",MessageBoxButtons.OK,MessageBoxIcon.Warning);

4.指定默认按钮

如果在消息框中指定了二个或三个按钮,可以使用枚举MessageBoxDefaultButton来指明那个按钮时默认的。例如:

MessageBox.Show("Hello World", "System",MessageBoxButtons.OKCancel,
                MessageBoxIcon.Warning,MessageBoxDefaultButton.Button2);

上面代码指定了第二个按钮为默认按钮,该按钮将会在消息框上突出显示,并且它还响应键盘输入,例如按下空格键。

5.MessageBox的返回值

MessageBox 的返回值是DialogResult类型的枚举。该枚举有以下成员,用来指示用户按下的是那个按钮。

None , OK , Cancel , Abort , Retry , Ignore , Yes , No

下面代码是通常使用DialogResult的方式,

DialogResult dr =  MessageBox.Show("是否创建一个新的文件", "系统信息", 
               MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
           if (dr == DialogResult.OK)
           {
               //create a new file
           }
           else
           {
               //do nothing
           }
### 如何使用 C# 开发 Windows Forms 应用程序 C# 是一种强大的编程语言,广泛用于开发各种类型的软件应用,其中包括基于 Windows 的桌面应用程序。以下是有关如何利用 C#Windows Forms 构建桌面应用程序的一些核心知识点。 #### 创建项目 要开始构建一个 Windows Forms 应用程序,首先需要设置开发环境并创建新项目。这可以通过 Visual Studio 实现,具体操作如下: 1. 打开 **Visual Studio** 并导航到菜单栏中的 `文件` -> `新建` -> `项目`。 2. 在可用模板列表中选择 `Windows Forms App (.NET Framework)` 或者 `.NET Core` 版本的选项[^3]。 3. 输入项目的名称和保存路径后单击“创建”。 此过程会初始化一个新的解决方案框架,其中包含了默认的设计窗口以及必要的命名空间导入。 #### 添加控件与设计界面 一旦项目被成功建立起来之后,就可以进入图形化设计器来布置 UI 组件了。例如按钮(Button),标签(Label),文本框(TextBox)等等都可以拖拽至表单上完成布局工作。这些组件均继承自基类 `System.Windows.Forms.Control` ,因此具备统一的方法属性集合供开发者调用[^2]。 #### 处理用户交互逻辑 对于任何实际运行的应用而言,仅仅拥有静态显示效果显然是不够的;还需要定义当特定动作发生时应该执行什么样的处理流程。比如按下某个按键触发某些计算或者数据提交等功能。下面展示了一个简单的例子说明怎样绑定事件处理器给 Button 控件: ```csharp private void button1_Click(object sender, EventArgs e) { string message = ""; foreach(Control control in this.Controls){ if(control is CheckBox && ((CheckBox)control).Checked ){ message += ((CheckBox)control).Text + "\n"; } } if(!string.IsNullOrEmpty(message)){ MessageBox.Show($"Selected Hobbies:\n{message}", "Information"); }else{ MessageBox.Show("No hobbies selected.", "Warning"); } } ``` 上述代码片段实现了遍历所有子级控件寻找已勾选状态下的复选框,并收集其文字描述形成最终的消息弹窗内容[^2]。 #### 支持国际化特性 为了让自己的产品适应更广泛的受众群体需求,在必要情况下可以考虑加入多国语言支持能力。借助 .resx 文件存储不同区域设定下对应的字符串表达形式,再配合动态加载机制即可达成目标。这里给出一段简化版示范代码演示更改当前线程UI文化信息的过程: ```csharp using System.Globalization; using System.Resources; // 更改当前线程的语言为简体中文 Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN"); // 初始化资源管理器实例关联指定类型 ResourceManager resourceManager = new ResourceManager(typeof(Form1)); foreach(var control in Controls.Cast<Control>()){ // 更新各控件上的显示文案 control.Text = resourceManager.GetString($"{control.Name}.Text"); } // 同步调整主窗体标题 this.Text = resourceManager.GetString("$this.Text"); ``` 以上脚本展示了基本原理即通过修改 `CurrentUICulture` 属性影响后续检索出来的本地化资料项[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值