编辑:完全重新编辑以更清楚地说明问题:
当我这样做时,我不认为这会奏效:
Dim Label1 As Label
Dim testvar As String = "BottomRight"
Dim testalign As ContentAlignment
testalign = ContentAlignment.testvar
Label1.TextAlign = testalign
" BottomRight"是你在intellisense中获得的众多选择之一。使用字符串,因为完整的代码设置' Label1.textalign'根据字符串变量设置不同的设置。
显然,ContentAlignment.testvar会抛出错误。我需要保留由字符串值设置的可枚举。根本无法理解这一点 - 概念对我的舞台来说太进步了,但有没有办法实现这一目标?两天寻找并失去希望..
答案 0 :(得分:1)
如果必须使用字符串变量,则有两个选项:
选项一
选项二
Select Case testvar.Trim.ToLower
Case "bottomright"
testalign = ContentAlignment.BottomRight
Case ....
End Select
答案 1 :(得分:0)
最后!在Sam的指导下,请问:
Dim Label1 As Label
Dim testvar As String = "BottomRight"
Dim testalign As New ContentAlignment
testalign = CType([Enum].Parse(GetType(ContentAlignment), testvar), ContentAlignment)
Label1.TextAlign = testalign
不确定它适用于所有类 - 它不适用于color
。 ContentAlignment
下的枚举值列为公共常量 - 因此它们可能必须属于此类型。