2

场景是这样的:我想使用组合框设置 formborderstyle。

我可以使用这些方法成功地将边框样式设置为“无”:

Form1.FormBorderStyle = 0

或者

Form1.FormBorderStyle = Windows.Forms.FormBorderStyle.None

我怎么能用字符串做到这一点?

Dim formstyle As String
formstyle = "Windows.Forms.FormBorderStyle." & ComboBox1.Text
Form1.FormBorderStyle = formstyle

我收到此错误:从字符串“Windows.Forms.FormBorderStyle.No”到类型“整数”的转换无效。


似乎 Form1.formborderstyle 只需要整数。在不实际使用整数的情况下,有没有办法可以将字符串转换为整数对应物……有点像 eval?

最终我希望它看起来像:

Dim formstyle As String
formstyle = "Windows.Forms.FormBorderStyle." & ComboBox1.Text
Form1.FormBorderStyle = eval(formstyle)
4

1 回答 1

3

使用Enum.(Try)Parse

Enum.Parse

将一个或多个枚举常量的名称或数值的字符串表示形式转换为等效的枚举对象。

文档和这个答案有一个语法示例。你可能在追求类似的东西:

Form1.FormBorderStyle = CType([Enum].Parse(GetType(FormBorderStyle), ComboBox1.Text), FormBorderStyle)
于 2013-07-28T06:17:01.073 回答