VB.net Express 2010 评估?

标签 vb.net

场景是这样的: 我想使用组合框设置 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/

相关文章:

vb.net - 在 VB.NET 中对对象列表进行排序

c# - 将 VB 翻译成 C# - 类型转换

c# - 编辑文件元数据 - 代码在 VB 中可以,但在 C# 中不行

javascript - .NET doPostBack 触发后更新 javascript 变量

c# - 减少 C# 或 VB.NET 枚举中的值

VB.NET 在窗体之间传递数据

arrays - 如何将十六进制字符串转换为字节数组?

vb.net - 在 vb.net 中显示加载屏幕

c# - XAML Designer - 默认缩放?

vb.net 对象初始值设定项列表(Of T)