场景是这样的: 我想使用组合框设置 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”到类型“Integer”的转换无效。
看起来 Form1.formborderstyle 只接受整数。在不实际使用整数的情况下,有没有一种方法可以将字符串转换为对应的整数......有点像 eval?
最终我希望它看起来像这样:
Dim formstyle As String
formstyle = "Windows.Forms.FormBorderStyle." & ComboBox1.Text
Form1.FormBorderStyle = eval(formstyle)
最佳答案
使用Enum.(Try)Parse
:
Enum.Parse
Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object.
文档和 this answer有一个语法示例。您可能正在追求类似的东西:
Form1.FormBorderStyle = CType([Enum].Parse(GetType(FormBorderStyle), ComboBox1.Text), FormBorderStyle)
关于VB.net Express 2010 评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17905533/