0

使用枚举在c#中构建一个自定义消息框,如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”

我该如何解决这个错误。条件是我不想写类名

4

2 回答 2

2

您必须将枚举移出类,因此它不是嵌套类型。

public enum MsgBoxButtons { Yes, No, Ok, Cancel }
public class CuMessageBox
{
   // etc..
}

小心你在做什么,一个带有“是”或“否”按钮的消息框是相当奇怪的。如果要组合按钮,则至少必须使用 [Flags] 属性,以便可以在 Show 调用中指定多个按钮:

[Flags]
public enum MsgBoxButtons { 
   Yes = 1,
   No = 2,
   Ok = 4,
   Cancel = 8
}

或者只是使用现有的 MessageBoxButton 枚举类型来避免这一切。

于 2013-02-14T02:56:31.873 回答
0

您可以尝试将 toString() 添加到枚举的末尾吗?例如 MsgBoxButtons.Yes.ToString()。

于 2013-02-14T02:02:53.657 回答