VB.net Express 2010评估?

时间:2013-07-28 06:14:03

标签: vb.net

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

我可以将bordertyle设置为" None"成功使用这些方法:

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)

1 个答案:

答案 0 :(得分:3)

使用Enum.(Try)Parse

  

Enum.Parse

     

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

文档和this answer有一个语法示例。你可能会喜欢这样的事情:

Form1.FormBorderStyle = CType([Enum].Parse(GetType(FormBorderStyle), ComboBox1.Text), FormBorderStyle)