使用Color.FromName,Visual Basic调用用户定义的Color

时间:2015-05-21 07:10:47

标签: vb.net string colors

我已经定义了一个新的System.Drawing.Color;

Public CustomBackColor As System.Drawing.Color = Color.FromArgb(200, 4, 146)

现在,我有一个GlobalBackColor As String,我想成为新的CustomBackColor值。

我的问题是,如果有任何方法可以将CustomBackColor System.Drawing.Color写入GlobalBackColor String。或者,要使CustomBackColor成为默认的系统颜色,以便我可以像这样定义GlobalBackColor:GlobalBackColor = "CustomBackColor"

无论如何,我希望能够像这样定义它: pbR001C03.BackColor = Color.FromName(GlobalBackColor)

修改

pbR001C03是一个PictureBox。

在此示例中示例;

Public CustomBackColor As System.Drawing.Color = Color.FromArgb(200, 4, 146)

Public GlobalBackColor As String

Public Sub Example()

`GlobalBackColor = Color.FromName(CustomBackColor)`
`...`
`pbR001C03.BackColor = Color.FromName(GlobalBackColor)`
`pbR001C04.BackColor = Color.FromName(GlobalBackColor)`
`...`

End Sub

GlobalBackColor = Color.FromName(CustomBackColor)似乎不适合我。没有错误,只是一个黑色。

2 个答案:

答案 0 :(得分:1)

您不能像这样使用Color.FromName,但不需要使用它。
由于您的CustomBackColor 类型为System.Drawing.Color,因此您可以将其直接用于System.Drawing.Color类型的任何属性

pbR001C03.BackColor = GlobalBackColor

这是方法描述来自MSDN:

  

根据预定义颜色的指定名称创建颜色结构。

(源代码不粗体。)

真的没有办法将Color.FromName用于自定义名称,因为它需要扩展System.Drawing.KnownColors枚举,extending enums is impossible in .net

答案 1 :(得分:1)

在vb.net中无法更改/扩展System.Drawing枚举