如何在C#自定义MessageBox方法中动态指定弹出框的Icon图标
解决方案
这个需求完全可以实现,你只需要将图标参数的类型指定为System.Windows.Forms.MessageBoxIcon枚举即可,不需要自定义可变类型。
修改自定义MB方法
你可以直接使用以下代码,还可以给图标参数设置默认值,兼容你之前的旧调用逻辑:
private void MB(string Text, string Title, System.Windows.Forms.MessageBoxIcon icon = System.Windows.Forms.MessageBoxIcon.Error) { MessageBox.Show(Text, Title, System.Windows.Forms.MessageBoxButtons.OKCancel, icon); }
调用方法
如果你想像预期的那样直接写Error、Question简化调用,只需要在代码文件的顶部引入以下静态引用:
using static System.Windows.Forms.MessageBoxIcon;
之后就可以直接按你想要的方式调用:
MB("String 1", "String 2", Error); MB("String 1", "String 2", Question); // 原来的旧调用方式依然可用,默认使用Error图标 MB("String 1", "String 2");
如果不想加静态引用,直接写全枚举值也可以正常调用:
MB("String 1", "String 2", System.Windows.Forms.MessageBoxIcon.Error);
内容的提问来源于stack exchange,提问作者Ablac
相关产品推荐
相关产品推荐

