Windows窗体C#设计器文件中的“枚举”类型中断
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows窗体C#设计器文件中的“枚举”类型中断相关的知识,希望对你有一定的参考价值。
我想知道以前是否有人遇到过这个问题。我正在使用C#,.NET 4.5和Visual Studio 2013。
我有一个自定义文本框,基本上只是从标准Windows窗体TextBox
继承。在它上面,有一个如下属性:
public EnumName Property { get; set; }
EnumName
枚举的定义如下:
[Flags]
public enum EnumName
{
Value1 = 1,
Value2 = 2,
Value3 = 3
}
当我在表单上使用自定义控件并将属性设置为Value3
时,设计器实际上会:
control.EnumName = EnumName.Value1 | EnumName.Value2;
这可以。但是最近,当我向EnumName
添加一个新值(例如,Value4 = 9999
)时,设计师将改为:
control.EnumName = EnumName.9999
有谁知道这背后的原因?这非常令人沮丧。
答案
使用[Flags]属性,您说这个枚举是一个位标志的集合。这就是为什么3实际上是1 | 2。
01 = 1
10 = 2
11 = 3
3是一和二。
您通常会为此枚举的独占成员添加值:
1 0001
2 0010
4 0100
8 1000
值9999将是以下标志设置“10011100001111”
如果有flags属性的原因,请保留它并添加如上所述的值。如果没有,请删除该属性。
以上是关于Windows窗体C#设计器文件中的“枚举”类型中断的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 VS2010 Windows 窗体设计器问题(无法加载基类)