通过字符串设置对象字段
set object field via string
编辑:完全重新编辑以更清楚地说明问题:
我做的时候没想到会成功:
Dim Label1 As Label
Dim testvar As String = "BottomRight"
Dim testalign As ContentAlignment
testalign = ContentAlignment.testvar
Label1.TextAlign = testalign
"BottomRight" 是您在智能感知中获得的众多选择之一。使用字符串是因为完整代码根据字符串变量将 'Label1.textalign' 设置为不同的设置。
显然 ContentAlignment.testvar 抛出了一个错误。我需要保留由字符串值设置的可枚举。完全无法理解这个问题 - 概念对于我的阶段来说太先进了,但是有什么办法可以实现这个目标吗?两天寻找和失去希望..
如果您必须使用字符串变量,您有两个选择:
选项一
选项二
Select Case testvar.Trim.ToLower
Case "bottomright"
testalign = ContentAlignment.BottomRight
Case ....
End Select
终于!在 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
下的枚举值被列为 Public 常量 - 因此它们可能必须是这种类型。
编辑:完全重新编辑以更清楚地说明问题:
我做的时候没想到会成功:
Dim Label1 As Label
Dim testvar As String = "BottomRight"
Dim testalign As ContentAlignment
testalign = ContentAlignment.testvar
Label1.TextAlign = testalign
"BottomRight" 是您在智能感知中获得的众多选择之一。使用字符串是因为完整代码根据字符串变量将 'Label1.textalign' 设置为不同的设置。
显然 ContentAlignment.testvar 抛出了一个错误。我需要保留由字符串值设置的可枚举。完全无法理解这个问题 - 概念对于我的阶段来说太先进了,但是有什么办法可以实现这个目标吗?两天寻找和失去希望..
如果您必须使用字符串变量,您有两个选择:
选项一
选项二
Select Case testvar.Trim.ToLower
Case "bottomright"
testalign = ContentAlignment.BottomRight
Case ....
End Select
终于!在 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
下的枚举值被列为 Public 常量 - 因此它们可能必须是这种类型。