PropertyGrid控件在VB.net下使用的例子

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章