使用enum在c#
中构建自定义Messagebox,如Messagebox我使用以下代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void Sow()
{
CuMessageBox.SowMessage("text", "caption", CuMessageBox.MsgBoxButtons.Yes);
MessageBox.Show("text", "caption", MessageBoxButtons.OK);
}
}
public class CuMessageBox
{
public enum MsgBoxButtons { Yes, No, Ok, Cancel }
public static void SowMessage(string text, string caption, MsgBoxButtons msg)
{
//Todo
}
}
在这一行:
CuMessageBox.SowMessage("text", "caption", CuMessageBox.MsgBoxButtons.Yes); // Custom MessageBox
我不想显示该类的名称。如何不显示类名。 C#中的消息框不会显示类的名称
我想使用此代码显示:
CuMessageBox.SowMessage("text", "caption", MsgBoxButtons.Yes); // Custom MessageBox
错误:当前上下文中不存在名称“MsgBoxButtons”
如何修复此错误。条件我不想写类名
答案 0 :(得分:2)
你必须将枚举移出类,因此它不是嵌套类型。
public enum MsgBoxButtons { Yes, No, Ok, Cancel }
public class CuMessageBox
{
// etc..
}
小心你正在做的事情,一个带有“是”或“否”的单个按钮的消息框相当奇怪。如果你想组合按钮,那么你必须至少使用[Flags]属性,这样你才能在Show call中指定多个按钮:
[Flags]
public enum MsgBoxButtons {
Yes = 1,
No = 2,
Ok = 4,
Cancel = 8
}
或者只使用现有的MessageBoxButton枚举类型来避免这一切。
答案 1 :(得分:0)
您可以尝试将toString()添加到枚举的末尾。例如MsgBoxButtons.Yes.ToString()。