0
我對vb.net非常陌生,現在發現術語/概念有點令人生畏,所以請原諒這個問題的新手性。在VB.NET中通過字符串變量設置控件屬性值
我想通過變量設置一些控制屬性。例如:
Dim f As DateTimePicker
Dim g As String = "Short"
f.Format = DateTimePickerFormat.g
這是行不通的。我做錯了什麼,我該如何糾正?
我對vb.net非常陌生,現在發現術語/概念有點令人生畏,所以請原諒這個問題的新手性。在VB.NET中通過字符串變量設置控件屬性值
我想通過變量設置一些控制屬性。例如:
Dim f As DateTimePicker
Dim g As String = "Short"
f.Format = DateTimePickerFormat.g
這是行不通的。我做錯了什麼,我該如何糾正?
如果你想設置的系統短格式,你只需做這樣的:
Dim f As New DateTimePicker
f.Format = DateTimePickerFormat.Short
你的想法是正確的,但the Format
property接受一個枚舉值是predefined Enum
values。如果不進行反思(這是一個更高級的主題),您需要使用預定義的值,而不是嘗試使用字符串值動態設置它。
編輯
如果你真的想用一個字符串值來設置Format
,你可以這樣來做:
Dim f As New DateTimePicker
' This must be set to a valid DateTimePickerFormat name.
Dim formatType As String = "Short"
f.Format = DirectCast([Enum].Parse(GetType(DateTimePickerFormat), formatType), DateTimePickerFormat)
感謝。那麼,Reflection是動態地實現這一點的方式?看起來像我將堅持多線ifs的時間,如果它是先進的.. – stigzler
@stigzler - 我更新了答案,以顯示如何使用字符串值來設置它。 –
謝謝fella - 很快就會試用這個... – stigzler