Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows窗体C设计器文件中的“enum”类型中断_C#_Winforms_Visual Studio_Enums_Visual Studio Designer - Fatal编程技术网

C# Windows窗体C设计器文件中的“enum”类型中断

C# Windows窗体C设计器文件中的“enum”类型中断,c#,winforms,visual-studio,enums,visual-studio-designer,C#,Winforms,Visual Studio,Enums,Visual Studio Designer,我想知道以前是否有人遇到过这个问题。我正在使用C、.NET4.5和VisualStudio2013 我有一个自定义文本框,它基本上是从标准Windows窗体文本框继承而来的。在其上,有一个类似以下的属性: public EnumName Property { get; set; } EnumName枚举的定义如下: [Flags] public enum EnumName { Value1 = 1, Value2 = 2, Value3 = 3

我想知道以前是否有人遇到过这个问题。我正在使用C、.NET4.5和VisualStudio2013

我有一个自定义文本框,它基本上是从标准Windows窗体文本框继承而来的。在其上,有一个类似以下的属性:

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属性存在原因,请保留它并添加如上所述的值。如果没有,请删除该属性。

使用[Flags]属性,可以说此枚举是位标志的集合。这就是为什么3实际上是1 | 2

01 = 1
10 = 2
11 = 3
3是一和二

您通常会为此枚举的独占成员添加值:

1   0001
2   0010
4   0100
8   1000
值9999将是以下标志集10011100001111

如果flags属性存在原因,请保留它并添加如上所述的值。如果没有,请删除该属性。

如果要保留1,2,3概念,可以使用位移位作为设置值的一部分。1如果希望保留1,2,3概念,可以使用位移位作为设置值的一部分。1.