C# 控件自定义属性

C# 控件自定义属性,c#,winforms,enums,controls,C#,Winforms,Enums,Controls,我刚刚学习了C#(窗口窗体)中的自定义控件。我创建了下面的自定义控件,正如您所看到的,我有一个名为“Test”的属性,该属性应设置为EnumTest的enum值-它可以工作查找,但我希望控件的用户选择多个属性,以便“Test”属性可以: Test = EnumTest.TopLeft | EnumTest.TopRight; 这是否可能?如果可能,属性中的下拉框仅允许我在列表中选择一个枚举。如果可能的话,我需要检测到如果用户将其设置为“无”,那么它将是一个单选而不是多选 namespace W

我刚刚学习了C#(窗口窗体)中的自定义控件。我创建了下面的自定义控件,正如您所看到的,我有一个名为“Test”的属性,该属性应设置为EnumTest的enum值-它可以工作查找,但我希望控件的用户选择多个属性,以便“Test”属性可以:

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;
        }
    }
}

非常感谢您在这方面提供的帮助。

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


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

枚举中没有用于指定标志枚举的属性吗?等一下,我正在调查这个


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

我已经在枚举中添加了[Flags],但是在属性窗口(在设计模式下)中,我只能选择一个选项来设置它-我想要类似“锚”的东西,除了用于选择定位点的图形界面部分。然后您需要一个UITypeEditor。我将查找一些UITypeEditor教程。谢谢你给我指明了正确的方向。