将自定义 属性 公开给 visual studio 设计师

Exposing custom property to visual studio designer

我正在创建一个在用户控件下子类化的自定义按钮。我想弄清楚如何将枚举 属性 公开给设计器,以便我可以在使用设计器时设置枚举。我必须添加什么才能使控件的 属性 显示在设计器上?

namespace App1
{
    public enum foodType
    {
        Appetizers,
        Breakfast,
        Lunch,
        Dinner,
        Desserts,
        Drinks
    };

    public sealed partial class FoodTypeButton : UserControl
    {
        public foodType type
        {
            get { return type; }
            set { type = value; }
        }
        public FoodTypeButton()
        {
            this.InitializeComponent();
        }
    }
}

我想让这个按钮有一个枚举的原因是我可以将所有 6 个按钮传递给一个方法。这一方法将检查枚举并调用相应的按钮网格。

现在我有

appetizerButtonClicked()
{
//call other grid
}

breakfastButtonClicked()
{
//call other grid
}

lunchButtonClicked()
{
//other grid
}

等等....

也许有更好的方法来处理这个问题?

它正在设计师中为我展示。确保您已正确添加 属性。 如果我的猜测是正确的,那么您将错误地给出 属性 定义。它会抛出 Whosebug 异常。在给出的示例代码中,您忘记添加 属性 的私有成员定义。

    private foodType type;
    public foodType Type
    {
        get { return type; }
        set { type = value; }
    }

现在您可以在设计器中获取类型 属性。