通过字符串设置对象字段

时间:2015-07-22 21:09:09

标签: vb.net class object properties enumerable

编辑:完全重新编辑以更清楚地说明问题:

当我这样做时,我不认为这会奏效:

   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会抛出错误。我需要保留由字符串值设置的可枚举。根本无法理解这一点 - 概念对我的舞台来说太进步了,但有没有办法实现这一目标?两天寻找并失去希望..

2 个答案:

答案 0 :(得分:1)

如果必须使用字符串变量,则有两个选项:

选项一

Enum.Parse

选项二

Select Case

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

不确定它适用于所有类 - 它不适用于colorContentAlignment下的枚举值列为公共常量 - 因此它们可能必须属于此类型。