充分利用 .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