控制自定义属性

时间:2011-05-31 15:23:29

标签: c# winforms enums controls

我刚学习C#中的自定义控件(窗体)我创建了下面的自定义控件,你可以看到我有一个名为“Test”的属性应该设置为EnumTest的枚举值 - 它是工作查找,除了我想要控件的用户选择多个属性,所以“测试”属性可以是:

Test = EnumTest.TopLeft | EnumTest.TopRight;

这是否可行 - 如果是这样,属性中的下拉框如何只允许我在列表中选择一个枚举。如果可能的话,我需要检测一下,如果用户将其设置为“无”,那么它将是一个选择而不是多选。

namespace WindowsFormsApplication1
{
    public partial class myControl1 : Control 
    {
        public enum EnumTest
        {
            None = 0,
            TopLeft = 1,
            TopRight = 2,
            BottomLeft = 4,
            BottomRight = 8,
            All = TopLeft | TopRight | BottomLeft | BottomRight
        }
        public UserControl1() {
            InitializeComponent();
        }

        public EnumTest Test {
            get;
            set;
        }
    }
}

非常感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:2)

[Flags]添加到您的枚举中,表示它接受多个值。

我不记得属性网格是否知道[Flags]枚举;如果没有,你需要写一个UITypeEditor。

答案 1 :(得分:0)

用于指定标志枚举的枚举是否没有属性?等一下,我正在研究这个......

嘿,你知道什么:他们称属性为[Flags]!这应该很容易记住下次......