2013-07-28 74 views
2

這種情況是這樣的: 我想使用組合框設置formborderstyle。VB.net Express 2010 eval?

我可以用這些方法爲 「無」 成功設置邊框:

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) 
+0

你的問題標題與這個問題有什麼關係? –

回答

3

使用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) 
+0

出於某種原因我得到:未找到請求值'Windows.Forms.FormBorderStyle.None'。 – user1950278

+1

嘗試使用「無」。枚舉的不知道他們的名字空間。他們只知道他們的價值觀。 –

+2

@ user1950278看看我寫的例子,並將其與您的例子進行比較。我不把'Windows.Forms.FormBorderStyle.'連接到枚舉名稱的開頭。 –