PropertyGrid
更改屬性的顯示方式
要更改某些屬性的顯示方式,您可以對這些屬性應用不同的特性。特性是用於爲類型、字段、方法和屬性等編程元素添加批註的聲明標記,在運行時可以使用反射對其進行檢索。下面列出了其中的一部分:
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