我刚学习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;
}
}
}
非常感谢您提供任何帮助。
答案 0 :(得分:2)
将[Flags]
添加到您的枚举中,表示它接受多个值。
我不记得属性网格是否知道[Flags]
枚举;如果没有,你需要写一个UITypeEditor。
答案 1 :(得分:0)
用于指定标志枚举的枚举是否没有属性?等一下,我正在研究这个......
嘿,你知道什么:他们称属性为[Flags]
!这应该很容易记住下次......