我有这个枚举
Public Enum HotkeyModifiers As Short
SHIFT = 1
CONTROL = 2
ALT = 4
NONE = 0
End Enum
所以6
等于ALT+CONTROL
,所以当我这样做时:
MsgBox((HotkeyModifiers.CONTROL Or HotkeyModifiers.ALT).ToString)
MsgBox([Enum].Parse(GetType(HotkeyModifiers), 6).ToString)
我希望将此输出作为String:
CONTROL, ALT
因为如果我尝试使用例如Keys
枚举的框架枚举:
MsgBox((Keys.Alt Or Keys.ControlKey).ToString)
我收到这个字符串:
ControlKey, Alt
然后我在枚举中缺少什么?
答案 0 :(得分:4)
您需要使用FlagsAttribute
修饰枚举。
<Flags>
Public Enum HotkeyModifiers As Short
SHIFT = 1
CONTROL = 2
ALT = 4
NONE = 0
End Enum
这会影响ToString
和解析的行为。
答案 1 :(得分:2)
在执行以下操作时似乎没有任何问题:
Private Enum enumModul As Integer
Modul_1 = 1
Modul_2 = 2
Modul_3 = 3
Out_of_work = 4
Pause = 5
End Enum
Dim Modul As enumModul = 0
Label3.Text = Modul.ToString