用winform的MessageBox是实现不了的,这里我用的是DevExpress控件的XtraMessageBoxForm

例如如果想在一个提示框里修改“是”,“否”按钮的文本时,这个时候我们一般都不好改,只能自己写一个form了,但是我们可以派生一个XtraMessageBoxForm的form之后重写方法就可以做到了

     class MyCloseXtraMessageBoxForm : XtraMessageBoxForm
{
protected override string GetButtonText(DialogResult target)
{
switch (target)
{
case DialogResult.Yes:
return "保存";
case DialogResult.No:
return "不保存";
}
return base.GetButtonText(target);
}
}
然后调用的时候按下面的去调用就行了

 1             XtraMessageBoxArgs msgBoxArgs = new XtraMessageBoxArgs(this,
"是否保存",
"提示",
new[] { DialogResult.Yes, DialogResult.No, DialogResult.Cancel },
null,
);
MyCloseXtraMessageBoxForm msgBoxForm = new MyCloseXtraMessageBoxForm();
DialogResult dr = msgBoxForm.ShowMessageBoxDialog(msgBoxArgs);
switch (dr)
{
case DialogResult.Cancel:
break; case DialogResult.Yes:
break; case DialogResult.No:
break; default:
throw new ArgumentOutOfRangeException();
}

效果如下:

针对这里面cancel按钮为什么不是“取消”的问题,我还没找到原因,之前都是能显示中文的,实在遇到这个问题,重写cancel按钮的文本就行了

对于按钮都是英文,感觉每次改写很麻烦,我们可以自己写一个汉化类

通过下面代码可使“OK”显示为中文:
首先创建一个继承自Localizer的类:

  1. using DevExpress.XtraEditors.Controls;
  2. public class MessboxClass : Localizer
  3. {
  4. public override string GetLocalizedString(DevExpress.XtraEditors.Controls.StringId id)
  5. {
  6. switch (id)
  7. {
  8. case StringId.XtraMessageBoxCancelButtonText:
  9. return "取消";
  10. case StringId.XtraMessageBoxOkButtonText:
  11. return "确定";
  12. case StringId.XtraMessageBoxYesButtonText:
  13. return "是";
  14. case StringId.XtraMessageBoxNoButtonText:
  15. return "否";
  16. default:
  17. return base.GetLocalizedString(id);
  18. }
  19. }
  20. }

这里要注意,要在工程引用中添加DevExpress.Data和DevExpress.XtraEditors。编写上面的类之后在工程的Program.cs文件的main函数中添加:

  DevExpress.XtraEditors.Controls.Localizer.Active = new MessboxClass();  即可。

  如果你的Programs的main函数中有创建窗体,那么最好将上述代码写在main函数内第一行,确保能够执行到。显示效果如图:

我这里只改了确定、取消及是否,读者朋友可根据需要修改其他。

c#winform程序,修改MessageBox提示框中按钮的文本的更多相关文章

  1. winform下的智能提示框

    winform下的智能提示框 最近在搞winform的程序,接触到有些可能以后还会用到的功能,所以写到博客园里去,第一可以加深自己的印象,第二可以在以后再遇到同样问题的时候忘记了可以马上回来看看,第三 ...

  2. 创建一个欢迎 cookie 利用用户在提示框中输入的数据创建一个 JavaScript Cookie,当该用户再次访问该页面时,根据 cookie 中的信息发出欢迎信息。

    创建一个欢迎 cookie 利用用户在提示框中输入的数据创建一个 JavaScript Cookie,当该用户再次访问该页面时,根据 cookie 中的信息发出欢迎信息. <html> & ...

  3. input和textarea标签的select()方法----选中文本框中的所有文本

    JavaScript select()方法选中文本框中的所有文本 <input>和<textarea>两种文本框都支持select()方法,这个方法用于选择文本框中的所有文本 ...

  4. 微信小程序 修改(自定义) 单选/复选按钮样式 checkbox/radio样式自定义

    参考文章: 微信小程序 修改(自定义) 单选/复选按钮样式 checkbox/radio样式自定义

  5. 修改placeholder提示内容的颜色以及文本框输入文字内容的颜色

    一般表单文本框提示信息:placeholder=" ",默认颜色是灰色的,输入文本信息也是默认为黑色的,如图所示: 修改placeholder提示内容的颜色关键代码及实现: 实现输 ...

  6. element-- 修改MessageBox 弹框 中确定和取消按钮顺序

    需求:修改弹框中的 取消/确定按钮顺序,及头部和底部背景颜色; 原ui效果图 需求ui效果图 方法:对取消及确定按钮自定义类名,样式重写

  7. 如何在 messager/alert/confirm等消息提示框中 获取 / 设置 嵌入 html内容中的 input[type=checkbox]等的选中状态?

    总结, 有3点: 不能/不要 在 这些消息框 / 提示框/ 对话框中的 回调函数中去写代码: 获取嵌入 内容中input.checkbox的选中状态, 因为 虽然在这些框存在的时候, 这个 check ...

  8. winform下自绘提示框风格窗体

    昨天分享了一个环形滚动条控件,今天分享一个提示框风格的窗体.代码如下: /// <summary> /// 继承自Form,但将FormBorderStyle设置为None /// < ...

  9. 微信小程序之----消息提示框toast

    toast toast为消息提示框,无按钮,如需关闭弹框可以添加事件设置hidden为true,在弹框显示后经过duration指定的时间后触发bindchange绑定的函数. 官方文档 .wxml ...

随机推荐

  1. unsigned char 类型

    在蓝牙4.0的开发中,很多数据类型都用到了 unsigned char ,我觉得用这个类型的一个原因是相比较于整型,它占的空间更少. 比如: unsigned char a = 1;  // 占1个字 ...

  2. JS自动格式化输入的数字/千位分隔符

    <script> function cc(s){         if(/[^0-9\.]/.test(s)) return "invalid value";     ...

  3. Centos 6.5安装oracle 11g

    (添加host)一.Centos 6.5 安装图形界面 gnome # yum groupinstall "Desktop" # yum groupinstall "X ...

  4. Does Lamda expression return value?

    Basically, the compiler does this for you. If you write a lambda as a single statement (and don't in ...

  5. 升级Win2010后, 打开SQL2008 附加数据库提示 5120错误

    在win2010系统上使用sql2008进行附加数据库(包括在x86系统正在使用的数据库文件,直接拷贝附加在X64系统中)时,提示无法打开文件,5120错误. 这个错误是因为没有操作权限,所以附加的时 ...

  6. AngularJs之$scope对象(作用域)

      一.作用域 AngularJs中的$scope对象是模板的域模型,也称为作用域实例.通过为其属性赋值,可以传递数据给模板渲染. 每个$scope都是Scope类的实例,Scope类有很多方法,用于 ...

  7. 循环语句--while

    有一种循环叫死循环,一经触发,就运行个天荒地老.海枯石烂 #coding=utf-8 count=0 while True: print("你是风儿我是沙,缠缠绵绵到天涯...", ...

  8. AttributeError: 'list' object has no attribute 'write_pdf'

    我在可视化决策树,运行以下代码时报错:AttributeError: 'list' object has no attribute 'write_pdf' 我使用的是python3.4 from sk ...

  9. sublime text 3 license 2016.05

    补充:2016.05 最近经过测试,3个注册码在新版3103的sublime上已经不可用了. 现补充两枚新版的license key: -– BEGIN LICENSE -– Michael Barn ...

  10. 第一周:设计一个简易ATM取款机简易程序(2)

    1.了解用户对ATM取款机功能需求如下: 2.新建一个login函数使用for循环方法和if选择方法编写登陆界面用来及设置ATM内用户的金额和取款机内的金额: 3.使用新建函数方法及if选择方法编写登 ...