【问题标题】:Set control property value via a string variable in VB.NET通过 VB.NET 中的字符串变量设置控件属性值
【发布时间】:2014-12-28 12:12:24
【问题描述】:

我对 vb.net 很陌生,目前发现术语/概念有点令人生畏,所以请原谅这个问题的新手。

我想通过变量设置一些控件属性。例如:

Dim f As DateTimePicker
Dim g As String = "Short"
f.Format = DateTimePickerFormat.g

这不起作用。我做错了什么,我该如何纠正?

【问题讨论】:

    标签: vb.net properties controls


    【解决方案1】:

    如果您尝试将其设置为系统短格式,您可以这样做:

    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)
    

    【讨论】:

    • 谢谢。那么,反射是动态执行此操作的方法吗?看起来如果它是先进的,我会暂时坚持多行ifs..
    • @stigzler - 我更新了答案以显示如何使用字符串值进行设置。
    猜你喜欢
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2010-11-08
    • 2012-03-21
    • 2017-03-31
    • 1970-01-01
    • 2014-12-12
    • 2011-04-12
    相关资源
    最近更新 更多