在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

充分運用 .NET 框架的 PropertyGrid 控件(微軟)之8

充分運用 .NET 框架的 PropertyGrid 控件(微軟)之8

更新時間:2022-04-26 文章作者:未知 信息來源:網絡 閱讀次數:

添加域列表和簡單的下拉列表屬性支持
對于基于 Enum 類型返回枚舉的屬性,PropertyGrid 會自動在下拉列表中顯示枚舉值。EnumConverter 也提供了這一功能。對于自己的屬性,您可能希望為用戶提供一個有效值列表(有時也稱為選取列表或域列表),而其類型并不是基于 Enum。如果域值在運行時之前未知,或者值可以更改,則屬于這種情況。

修改選項窗口,提供一個用戶可從中選擇的默認文件名的域列表。您已經將 DefaultFileName 屬性添加到 AppSettings 類。下一步是在 PropertyGrid 中顯示屬性的下拉列表,以提供域列表。

提供簡單的下拉列表屬性支持
創建一個從類型轉換器類繼承而來的類。由于 DefaultFileName 屬性屬于 String 類型,因此可以從 StringConverter 中繼承。如果屬性類型的類型轉換器不存在,則可以從 TypeConverter 繼承;這里并不需要。
' Visual Basic

Public Class FileNameConverter
Inherits StringConverter
End Class

覆蓋 GetStandardValuesSupported 方法并返回 true,表示此對象支持可以從列表中選取的一組標準值。
' Visual Basic

Public Overloads Overrides Function GetStandardValuesSupported( _
ByVal context As ITypeDescriptorContext) As Boolean
Return True
End Function

覆蓋 GetStandardValues 方法并返回填充了標準值的 StandardValuesCollection。創建 StandardValuesCollection 的方法之一是在構造函數中提供一個值數組。對于選項窗口應用程序,您可以使用填充了建議的默認文件名的 String 數組。
' Visual Basic

Public Overloads Overrides Function GetStandardValues( _
 ByVal context As ITypeDescriptorContext) _
As StandardValuesCollection

Return New StandardValuesCollection(New String() {"新文件", _
"文件1", _
"文檔1"})
End Function

(可選)如果希望用戶能夠鍵入下拉列表中沒有包含的值,請覆蓋 GetStandardValuesExclusive 方法并返回 false。這從根本上將下拉列表樣式變成了組合框樣式。
' Visual Basic

Public Overloads Overrides Function GetStandardValuesExclusive( _
 ByVal context As ITypeDescriptorContext) As Boolean
Return False
End Function

擁有自己的用于顯示下拉列表的類型轉換器類后,您需要確定使用該類的目標。在本示例中,目標為 DefaultFileName 屬性,因為類型轉換器是針對該屬性的。將 TypeConverterAttribute 應用到目標屬性中。
' Visual Basic

' 應用到 DefaultFileName 屬性的 TypeConverter 特性。
<TypeConverter(GetType(FileNameConverter)), _
CategoryAttribute("文檔設置")> _
Public Property DefaultFileName() As String
Get
Return _defaultFileName
End Get
Set(ByVal Value As String)
_defaultFileName = Value
End Set
End Property

再次編譯并運行選項窗口應用程序。下面的屏幕快照顯示了選項窗口目前的外觀。請注意 DefaultFileName 屬性的外觀。

圖 7:在 PropertyGrid 中顯示下拉域列表

為屬性提供自定義 UI
如上所述,.NET 框架類型使用 TypeConverter 和 UITypeEditor 類(以及其他類)來提供 PropertyGrid 編輯支持。有關如何使用 TypeConverter,請參閱對自定義類型的支持一節;您也可以使用 UITypeEditor 類來自定義 PropertyGrid。

您可以在 PropertyGrid 中提供小圖形表示和屬性值,類似于為 Image 和 Color 類提供的內容。要在自定義中執行此操作,請從 UITypeEditor 繼承,覆蓋 GetPaintValueSupported 并返回 true。然后,覆蓋 UITypeEditor.PaintValue 方法,并在自己的方法中使用 PaintValueEventArgs.Graphics 參數繪制圖形。最后,將 Editor 特性應用到使用 UITypeEditor 類的類或屬性。

下面的屏幕快照顯示了結果外觀。

圖 8:在 PropertyGrid 中顯示屬性的自定義圖形

您也可以提供自己的下拉列表控件,這與 Control.Dock 屬性用來為用戶提供靠接選擇的控件類似。要執行此操作,請從 UITypeEditor 繼承,覆蓋 GetEditStyle,然后返回一個 UITypeEditorEditStyle 枚舉值,例如 DropDown。您的自定義下拉列表控件必須從 Control 或 Control 的派生類(例如 UserControl)繼承而來。然后,覆蓋 UITypeEditor.EditValue 方法。使用 IServiceProvider 參數調用 IServiceProvider.GetService 方法,以獲取一個 IWindowsFormsEditorService 實例。最后,調用 IWindowsFormsEditorService.DropDownControl 方法來顯示您的自定義下拉列表控件。請記住將 Editor 特性應用到使用 UITypeEditor 類的類或屬性中。

下面的屏幕快照顯示了結果外觀。

圖 9:在 PropertyGrid 中顯示屬性的自定義下拉列表控件

除了使用 TypeEditor 和 UITypeEditor 類外,還可以自定義 PropertyGrid 以顯示其他屬性選項卡。屬性選項卡從 PropertyTab 類繼承而來。如果您使用過 Microsoft Visual C#™ .NET 中的屬性瀏覽器,那么就可能看到過自定義的 PropertyTab。Events 選項卡(帶有閃電圖形的按鈕)就是一個自定義的 PropertyTab。下面的屏幕快照顯示了自定義 PropertyTab 的另一個示例。可以使用 PropertyTab 編輯按鈕的邊界點,以創建自定義的按鈕形狀。

圖 10:在 PropertyGrid 中顯示自定義選項卡

有關使用 UITypeEditor 類自定義 PropertyGrid 的詳細信息,以及上述自定義用戶界面代碼示例,請參閱 Shawn Burke 的文章 Make Your Components Really RAD with Visual Studio .NET Property Browser(英文)。

小結
.NET 框架提供的 ProperyGrid 控件具有豐富的編輯功能,您可以使用這些編輯功能來改善您的用戶界面。PropertyGrid 的自定義非常簡單,您可以在任何應用程序中使用這一控件。此外,由于 Visual Studio .NET 屬性瀏覽器是建立在 PropertyGrid 的基礎之上的,因此您可以使用這些技術提供更豐富的設計時體驗。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 成熟老妇女视频| 国产1区2区3区中文字幕| 三级黄色片免费看| 久久这里只有精品8| 超碰网在线观看| 日本久久高清视频| 国产真人无码作爱视频免费| 国产av不卡一区二区| www日韩在线观看| 亚洲一区 在线播放| 一区二区三区入口| 国产v片免费观看| 一级黄色录像免费看| 国产91xxx| 在线观看污视频| 日韩成人av免费| 一女被多男玩喷潮视频| 国产精品igao激情视频| 超碰在线免费观看97| 999在线精品视频| 亚洲天堂网一区| 无码人妻丰满熟妇区毛片| 成人毛片一区二区| 在线一区二区不卡| 在线观看高清免费视频| 日本一极黄色片| 欧美亚洲一二三区| 日韩伦理在线免费观看| 韩日视频在线观看| 男人天堂网站在线| 伊人精品视频在线观看| 欧美日韩久久婷婷| 污污的网站18| 鲁一鲁一鲁一鲁一av| www.超碰com| 一区二区三区国产免费| 成人亚洲精品777777大片| 欧美日韩亚洲第一| 欧美日韩在线免费播放| 久久黄色免费看| 欧美一级特黄a| 天美星空大象mv在线观看视频| 天天干在线影院| 一女二男3p波多野结衣| 香蕉视频在线网址| 男女激情免费视频| 美女日批免费视频| 久久久久国产一区| 中文字幕第一页亚洲| 国产美女作爱全过程免费视频| 激情深爱综合网| 亚洲高清在线免费观看| 裸体裸乳免费看| 99999精品视频| 在线看免费毛片| 国产av天堂无码一区二区三区| 日韩欧美在线播放视频| 亚洲av毛片在线观看| 天天夜碰日日摸日日澡性色av| www.这里只有精品| 欧美久久在线观看| 亚洲综合av在线播放| 黄色成人在线免费观看| 色婷婷狠狠18| 国产女大学生av| 国产日产欧美一区二区| 国产一线二线三线在线观看| 日韩精品aaa| 91av俱乐部| 国产一级爱c视频| www亚洲国产| 日本女优爱爱视频| 国产一级爱c视频| 欧美一级视频在线| 成人在线观看a| 国产一级大片免费看| 国产无遮挡猛进猛出免费软件| 日本免费不卡一区二区| 路边理发店露脸熟妇泻火| 最近中文字幕一区二区| 波多野结衣家庭教师在线播放| 91免费视频污| 手机视频在线观看| 欧美精品一区二区三区免费播放| cao在线观看| 精品久久久无码人妻字幂| 亚洲天堂av免费在线观看| 欧洲熟妇精品视频| jizz欧美激情18| 97国产精东麻豆人妻电影| 欧美高清中文字幕| 米仓穗香在线观看| 米仓穗香在线观看| 成年丰满熟妇午夜免费视频| 91性高潮久久久久久久| 三级av免费观看| 最新av免费在线观看| 男女无套免费视频网站动漫| 91视频最新入口| 丰满少妇被猛烈进入高清播放| 国产av麻豆mag剧集| 69堂免费视频| 国产一区亚洲二区三区| av丝袜天堂网| 精品久久久99| 9l视频自拍9l视频自拍| 国产 欧美 日韩 一区| 国产情侣第一页| 欧美色图色综合| 欧美在线aaa| 视色,视色影院,视色影库,视色网| 91麻豆天美传媒在线| 无码熟妇人妻av在线电影| 97在线国产视频| 免费看a级黄色片| 日韩一区二区三区久久| 男人j进女人j| 国产淫片免费看| jizzzz日本| 国产玉足脚交久久欧美| 91香蕉视频导航| 国内av一区二区| 奇米777四色影视在线看| 无码aⅴ精品一区二区三区浪潮| 亚洲精品怡红院| 免费观看国产视频在线| 久久精品99国产| av不卡在线免费观看| 欧美三级一级片| 国产不卡的av| 国产免费成人在线| 久久视频免费在线| 国产九九在线视频| www.日本在线视频| 色呦色呦色精品| 日韩 欧美 高清| 欧美视频在线第一页| 自拍偷拍 国产| 男人草女人视频| 美女网站色免费| 久久成人免费观看| 免费看日本黄色| 五月天六月丁香| 无码少妇一区二区三区芒果| 黄色一级视频播放| 亚洲成人福利在线观看| 一二三四视频社区在线| 美国av在线播放| 一级做a免费视频| 免费看黄色一级大片| 中文字幕乱码人妻综合二区三区| 91大学生片黄在线观看| 黄色永久免费网站| 国产97色在线 | 日韩| 久久国产亚洲精品无码| 国产xxxx振车| 日本黄大片在线观看| 少妇久久久久久被弄到高潮| 亚洲免费av网| 日本黄色播放器| 亚洲一级片免费观看| 一本一道久久a久久综合蜜桃| 国产一区视频免费观看| 国产日产欧美视频| 少妇高潮喷水久久久久久久久久| 久艹在线免费观看| 日本一本中文字幕| www.av蜜桃| 鲁一鲁一鲁一鲁一澡| 91国视频在线| 免费无码av片在线观看| 国内性生活视频| 久久久国产欧美| 中文字幕丰满乱码| 青草全福视在线| 欧美午夜小视频| 99热成人精品热久久66| 日本xxxxxxx免费视频| 在线视频日韩一区| 看看黄色一级片| 欧美激情亚洲天堂| 成人免费视频91| aaa毛片在线观看| 亚洲高清免费在线观看| 国产又黄又爽免费视频| 日韩精品免费一区| 日本一道本久久| 黄色三级视频在线| 中文字幕一区二区三区四| 400部精品国偷自产在线观看| 97在线免费视频观看| 日韩欧美一区二| 国产色视频在线播放| 国产性生活免费视频| 日韩欧美国产免费| 男生操女生视频在线观看| 欧美国产视频一区| mm131国产精品| 免费极品av一视觉盛宴| caoporn超碰97|