首页 > 编程 > .NET > 正文

充分利用 .NET 框架的 PropertyGrid 控件(微软)之六

2024-07-10 13:04:00
字体:
来源:转载
供稿:网友
更改属性的显示方式
要更改某些属性的显示方式,您可以对这些属性应用不同的特性。特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了其中的一部分:

descriptionattribute - 设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。可以将此特性应用于 maxrepeatrate 属性。
categoryattribute - 设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给杂项类别。可以将此特性应用于所有属性。
browsableattribute – 表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。可以将此特性应用于 settingschanged 属性。
readonlyattribute – 表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有 get 和 set 访问函数的公共属性在网格中是可以编辑的。可以将此特性应用于 appversion 属性。
defaultvalueattribute – 表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
defaultpropertyattribute – 表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。可以将此特性应用于 appsettings 类。
现在,我们将其中的一些特性应用于 appsettings 类,以更改属性在 propertygrid 中的显示方式。

' visual basic

<defaultpropertyattribute("saveonclose")> _
public class appsettings
    private _saveonclose as boolean = true
    private _greetingtext as string = "欢迎使用应用程序!"
    private _maxrepeatrate as integer = 10
    private _itemsinmru as integer = 4

    private _settingschanged as boolean = false
    private _appversion as string = "1.0"

    <categoryattribute("文档设置"), _
     defaultvalueattribute(true)> _
    public property saveonclose() as boolean
        get
            return _saveonclose
        end get
        set(byval value as boolean)
            saveonclose = value
        end set
    end property

    <categoryattribute("全局设置"), _
    readonlyattribute(true), _
    defaultvalueattribute("欢迎使用应用程序!")> _
    public property greetingtext() as string
        get
            return _greetingtext
        end get
        set(byval value as string)
            _greetingtext = value
        end set
    end property

    <categoryattribute("全局设置"), _
    defaultvalueattribute(4)> _
    public property itemsinmrulist() as integer
        get
            return _itemsinmru
        end get
        set(byval value as integer)
            _itemsinmru = value
        end set
    end property

    <descriptionattribute("以毫秒表示的文本重复率。"), _
    categoryattribute("全局设置"), _
    defaultvalueattribute(10)> _
    public property maxrepeatrate() as integer
        get
            return _maxrepeatrate
        end get
        set(byval value as integer)
            _maxrepeatrate = value
        end set
    end property

    <browsableattribute(false),
     defaultvalueattribute(false)> _
    public property settingschanged() as boolean
        get
            return _settingschanged
        end get
        set(byval value as boolean)
            _settingschanged = value
        end set
    end property

    <categoryattribute("版本"), _
    defaultvalueattribute("1.0"), _
    readonlyattribute(true)> _
    public property appversion() as string
        get
            return _appversion
        end get
        set(byval value as string)
            _appversion = value
        end set
    end property
end class


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表