![CProperyGri所有用法_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/49fc760d-aa94-463d-a241-d9b16eecbf1f/49fc760d-aa94-463d-a241-d9b16eecbf1f1.gif)
![CProperyGri所有用法_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/49fc760d-aa94-463d-a241-d9b16eecbf1f/49fc760d-aa94-463d-a241-d9b16eecbf1f2.gif)
![CProperyGri所有用法_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/49fc760d-aa94-463d-a241-d9b16eecbf1f/49fc760d-aa94-463d-a241-d9b16eecbf1f3.gif)
![CProperyGri所有用法_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/49fc760d-aa94-463d-a241-d9b16eecbf1f/49fc760d-aa94-463d-a241-d9b16eecbf1f4.gif)
![CProperyGri所有用法_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/49fc760d-aa94-463d-a241-d9b16eecbf1f/49fc760d-aa94-463d-a241-d9b16eecbf1f5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、如果您使用過覽器來瀏覽、屬性瀏覽器的核心。P ro pertyGrid控件顯示對象或類型的屬性,并主要通過使用反射來檢索項目的屬性。(反射是在運行時提供類型信息的技術。)或查看和編輯一個或多個對象的屬性。Microsoft? Visual Basic?Microsoft Visual Studio .NET.NET 框架 PropertyGrid,那么您一定使用過屬性瀏控件是 Visual Studio .NETF面的屏幕快照顯示了Prop ertyGrid在窗體上的外觀。圖1 :窗體上的Prop ertyGridProp ertyGrid包含以下部分:屬性可展開屬性 屬性類別標題 屬性說明屬
2、性編輯器屬性選項卡命令窗格(顯示控件設計器提供的設計器操作)創(chuàng)建 PropertyGrid控件要使用 Visual Studio .NET 創(chuàng)建PropertyGrid控件,需要將該控件添加到工具箱中,因為默認情況下并不包含該控件。在Tools(工具)菜單中,選擇 Customize Toolbox話框中選擇 Framework Components(框架組件)選項卡,然后選擇(自定義工具箱)。在對Prop ertyGrid。如果您從命令行編譯代碼,請使用/refere nee以下代碼顯示了如何創(chuàng)建Prop ertyGrid控件并將其添加到窗體中。1.2.3.using System;usin
3、g System.Drawing;using System.Co mpo nentModel;.8.9.10.using System.Globalization;p ublic Op tionsDialog()Op tions Prop ertyGrid = new Prop ertyGrid();Op tions Prop ertyGrid.Size = new Size(300, 250); this.Text =選項對話框;11.12.13.STAThread static void Main()14.15.App lication.Run(new Op tionsDia
4、log();16.17.何處使用 Prop ertyGrid 控件在應用程序中的很多地方,您都可以使用戶與Prop ertyGrid進行交互,從而獲得更豐富的編輯體驗。例如,某個應用程序包含多個用戶可以設置的設置”或選項,其中一些可能十分復雜。您可以使用單選按鈕、組合框或文本框來表示這些選項。但本文將逐步介紹如何使用Prop ertyGrid控件創(chuàng)建選項窗口來設置應用程序選項。上面所創(chuàng)建的Op tio nsDialog 窗體即是選項窗口的開始?,F(xiàn)在,我們創(chuàng)建一個名為App Sett in gs 的類,其中包含映射到應用程序設置的所有屬性。如果創(chuàng)建單獨的類而不使用多個分散的變量,設置將更便于管理
5、和維護。1.2.p ublic class App Settingsp rivate bool saveOnClose = true;3.p rivate string greetingText =歡迎使用應用程序!-4.private int itemsInMRU = 4;5.p rivate int maxRe peatRate = 10;6.p rivate bool settingsChanged = false;7.8.p rivate string app Version = 1.0;p ublic bool SaveOnClose9.10.get return saveOnClo
6、se; 11.set saveOnClose = value;12.13.p ublic string GreetingText14.15.get return greetingText; 16.set greetingText = value; 17.18.19.p ublic int MaxRe peatRate20.get return maxRe peatRate; 21.set maxRe peatRate = value; 22.23.public int ItemsInMRUList24.25.get return itemsInMRU; 26.set itemsInMRU =
7、value; 27.28.29.p ublic bool SettingsChanged30.get return settingsChanged; 31.set settingsChanged = value; 33.p ublic string App Version35.get return app Version; 36.set app Version = value; 38. 在添加時可創(chuàng)建新文選項窗口上的 Prop ertyGrid 將使用此類,因此請將類定義添加到應用程序項目中, 件或將其添加到現(xiàn)有窗體源代碼的下方。選擇對象要標識 PropertyGrid顯示的內容,請將 Pro
8、pertyGrid.SelectedObject然后,P ro pertyGrid將完成其余的工作。每次設置SelectedObject顯示的屬性。這提供了一種簡單的方法來強制刷新屬性,或在運行時切換對象。您還可以調用方法來刷新屬性。屬性設置為一個對象實例。都會刷新時,PropertyGridProp ertyGrid.Refresh接下來,您需要更新Op tio nsDialog 構造函數(shù)中的代碼,以創(chuàng)建一個App Setti ngs 對象,置為并將其設Prop ertyGrid.SelectedObject屬性的值。1.2.P ublic Op tionsDialog().7
9、.Op tions Prop ertyGrid = new Prop ertyGrid();Op tions Prop ertyGrid.Size = new Size(300, 250);this.Text =選項對話框;/ 創(chuàng)建AppSettings 類并在PropertyGrid中顯示該類。App Settings app set = new App Settings();8.9.Op tions Prop ertyGrid.SelectedObject = app set; 編譯并運行該應用程序。下面的屏幕快照顯示了應用程序的外觀。圖 2 : PropertyGrid中選定的 App
10、Setti ngs自定義 Prop ertyGrid控件您可以修改P ro pertyGrid不顯示某些屬性。那么,如何對的某些外觀特征以滿足自己的需要??梢愿哪承傩缘娘@示方式,Prop ertyGrid進行自定義呢?甚至選擇更改 PropertyGrid的外觀特征Prop ertyGrid的許多外觀特征都可以自定義。下面列岀了其中的一部分:通過 Hel pBackColor 、Help ForeColor 和Hel pVisible屬性可以更改背景顏色、更改字體顏色或隱藏說明窗格。通過ToolbarVisible屬性可以隱藏工具欄,通過BackColor屬性可以更改工具欄的顏色,通過屬性
11、可以顯示大工具欄按鈕。LargeButtons 使用 PropertySort 通過 BackColor通過 LineColor屬性可以按字母順序對屬性進行排序和分類。 屬性可以更改拆分器的顏色。屬性可以更改網(wǎng)格線和邊框。ToolbarVisible設置為false。其余屬性均保留默認本示例中的選項窗口不需要工具欄,因此可以將 設置。更改屬性的顯示方式要更改某些屬性的顯示方式,您可以對這些屬性應用不同的特性。特性是用于為類型、字段、方法和屬性等 編程元素添加批注的聲明標記,在運行時可以使用反射對其進行檢索。下面列岀了其中的一部分:DescriptionAttribute-設置顯示在屬性下方說明
12、幫助窗格中的屬性文本。這是一種為活動屬性(即具有焦點的屬性)提供幫助文本的有效方法??梢詫⒋颂匦詰糜贛axRe peatRate屬性。CategoryAttribute-設置屬性在網(wǎng)格中所屬的類別。當您需要將屬性按類別名稱分組時,此特性非常有用。如果沒有為屬性指定類別,該屬性將被分配給 雜項類別??梢詫⒋颂匦詰糜谒袑傩?。BrowsableAttribute-表示是否在網(wǎng)格中顯示屬性。此特性可用于在網(wǎng)格中隱藏屬性。默認情況下,公共 屬性始終顯示在網(wǎng)格中??梢詫⒋颂匦詰糜赟ett in gsCha nged 屬性。ReadOnlyAttribute和set訪問函數(shù)的公共屬性在網(wǎng)格中是可以編
13、輯的。可以將此特性應用于-表示屬性是否為只讀。此特性可用于禁止在網(wǎng)格中編輯屬性。默認情況下,帶有getAppVersion 屬性。DefaultValueAttribute-表示屬性的默認值。如果希望為屬性提供默認值,然后確定該屬性值是否與默認值相同,則可使用此特性??梢詫⒋颂匦詰糜谒袑傩?。Default Prop ertyAttribute-表示類的默認屬性。在網(wǎng)格中選擇某個類時,將首先突出顯示該類的默認屬性??梢詫⒋颂匦詰糜贏ppSettings 類?,F(xiàn)在,我們將其中的一些特性應用于App Setti ngs 類,以更改屬性在Prop ertyGrid中的顯示方式。1.2.Defau
14、lt Prop ertyAttribute(SaveOnClose) p ublic class App Settings3.P rivate bool saveOnClose = true;4.5.p rivate string greetingText =p rivate int maxRe peatRate = 10;歡迎使用應用程序!-.7.private int itemsInMRU = 4;p rivate bool settingsChanged = false;8.9.p rivate string app Version = 1.0;文檔
15、設置),CategoryAttribute(10.DefaultValueAttribute(true)11.12.p ublic bool SaveOnClose13.get return saveOnClose; 14.15.set saveOnClose = value;16.CategoryAttribute(全局設置),17.ReadOnlyAttribute(true),歡迎使用應用程序!)DefaultValueAttribute( P ublic string GreetingText get return greetingText; set greetingText = va
16、lue; 24.CategoryAttributeC全局設置),25.DefaultValueAttribute(4)26.public int ItemsInMRUList27.28.get return itemsInMRU; 29.set itemsInMRU = value; 3.Descri ptionAttribute(”CategoryAttribute(全局設置),DefaultValueAttribute(10)以毫秒表示的文本重復率。),34.p ublic int MaxRe peatRate35.36.get return maxRe peatRat
17、e; 37.set maxRe peatRate = value; 38.39.BrowsableAttribute(false),40.DefaultValueAttribute(false)41.p ublic bool SettingsChanged42.43.get return settingsChanged; 44.set settingsChanged = value; 45.46.CategoryAttribute(版本),47.DefaultValueAttribute(1.0),48.ReadOnlyAttribute(true)49.50.P ublic string A
18、pp Version51.get return app Version; 52.set app Version = value; 53.54.將這些特性應用于 AppSettings 類后,編譯并運行該應用程序。 下面的屏幕快照顯示了應用程序的外觀。圖 3 : PropertyGrid中顯示的帶有類別和默認值的屬性使用此版本的選項窗口后,您會注意到以下幾點:顯示窗口時,將首先突出顯示Save On Close屬性。選中MaxRepeatRate屬性時,說明幫助窗格中將顯示以毫秒表示的文本重復率版本”類別下。Save On Close屬性顯示在 文檔設置”類別下。其他屬性分別顯示在全局設置”和S
19、ett in gsCha nged 屬性將不再顯示。AppVersion屬性為只讀。只讀屬性以灰顯文本顯示。使用粗體文本表示包如果Save On Close屬性包含的值不是true ,該值將以粗體顯示。P ro pertyGrid 含非默認值的屬性。顯示復雜屬性到現(xiàn)在為止,選項窗口顯示的都是簡單的類型,如整數(shù)、布爾值和字符串。那么,如果應用程序需要跟蹤窗口大小、文檔字體或工具欄顏色等信息,該如何處理呢? 據(jù)類型具有特殊的顯示功能,能使這些類型在Prop ertyGrid中更具可用性。如何顯示更復雜的類型呢?.NET框架提供的某些數(shù)對所提供類型的支持首先,類型)請更新 App Sett in g
20、s 類,為窗口大?。⊿ize類型)、窗口字體(Font 添加新屬性。類型)和工具欄顏色(Color1.Default Prop ertyAttribute(SaveOnClose)2.3.p ublic class App Settingsp rivate bool saveOnClose = true;4.p rivate string greetingText =歡迎使用應用程序!5.p rivate int maxRe peatRate = 10;6.7.private int itemsInMRU = 4;p rivate bool settingsChanged = false;8.
21、p rivate string app Version = 1.0;9.10.private Size windowSize = new Size(100,100);p rivate Font windowFont = new Font(宋體,9, FontStyle.Regular);11.12.p rivate Color toolbarColor = SystemColors.Control;文檔設置13.CategoryAttribute(DefaultValueAttribute(true),14.p ublic bool SaveOnClose30.30.31.CategoryAt
22、tribute(全局設置)7.get return saveOnClose; set saveOnClose = value;18.19.20.CategoryAttribute( P ublic Size WindowSize文檔設置)22.21.23.get return windowSize; set windowSize = value;24.25.CategoryAttribute(文檔設置)26.27.p ublic Font WindowFont28.get return windowFont; set windowFont = value;32.p ubli
23、c Color ToolbarColor34.get return toolbarColor; 35.set toolbarcolor = value; 7.CategoryAttribute(全局設置),38.ReadOnlyAttribute(true),39.40.DefaultValueAttribute( p ublic string GreetingText歡迎使用應用程序!)41.42.get return greetingText; 43.44.set greetingText = value; 45.CategoryAttribute(全局設置),46.4
24、7.DefaultValueAttribute(4) public int ItemsInMRUList48.49.50.get return itemsInMRU; set itemsInMRU = value; 51.52.Descri ptionAttribute(以毫秒表示的文本重復率。),53.CategoryAttribute(全局設置),54.55.DefaultValueAttribute(10)p ublic int MaxRe peatRate56.57.58.get return maxRe peatRate; set maxRe peatRate = value; 59
25、.60.61.BrowsableAttribute(false),DefaultValueAttribute(false)62.p ublic bool SettingsChanged63.64.65.get return settingsChanged; set settingsChanged = value; 66.67.CategoryAttribute(版本),68.DefaultValueAttribute(1.0),69.ReadOnlyAttribute(true)70.71.p ublic string App Version72.get return app Version;
26、 73.set app Version = value; F面的屏幕快照顯示了新屬性在Prop ertyGrid中的外觀。圖 4 :顯示在 PropertyGrid中的.NET 框架數(shù)據(jù)類型請注意,WindowFont屬性帶有一個省略號(.)按鈕,按下該按鈕將顯示字體選擇對話框。此外,還可以展開該屬性以顯示更多的Font 屬性。某些Font 屬性提供有關字體的值和詳細信息的下拉列表。您可以展開WindowSize屬性以顯示 Size 類型的更多屬性。最后,請注意,ToolbarColor 屬性包含一個 選定顏色的樣本,以及一個用于選擇不同顏色的自定義下拉列表。對于這些以及其他數(shù)據(jù)類型,.NET
27、框架提供了其他的類,可以使在Prop ertyGrid中的編輯更加容易。對自定義類型的支持現(xiàn)在,您需要在 App Setti ngs 類中添加另外兩個屬性,即DefaultFileName 和Sp ellCheck Op tio ns 。DefaultFileName 屬性用于獲取或設置字符串;Sp ellCheckO ptio ns 屬性用于獲取或設置Sp elli ngOp tio ns類的實例。Sp elli ngOp tio ns類是一個新類,用于管理應用程序的拼寫檢查屬性。對于何時創(chuàng)建單獨的類以管理對象的屬性,并沒有嚴格的規(guī)定,而取決于您的整個類設計。將Sp elli ngOp ti
28、o ns類定義添加到應用程序項目中-可以添加到新文件中,也可以添加到窗體源代碼的下方。.5.6.Descri ptionAttribute(”p ublic class Sp elling Op tionsp rivate bool sp ellCheckWhileT yping = true; private bool sp ellCheckCA PS = false;p rivate bool suggestCorrections = true; DefaultValueAttribute(true)展開以查看應用程序的拼寫選項。)7.8.public bool Sp ell
29、CheckWhileTy ping9.10.11.get return sp ellCheckWhileT ypi ng; set sp ellCheckWhileT yping = value; 12.13.DefaultValueAttributefalse) public bool Sp ellCheckCA PS14.15.16.get return sp ellCheckCA PS; set sp ellCheckCA PS = value; 0.21.p ublic bool SuggestCorrectionsget return suggestCorrect
30、ions; DefaultValueAttribute(true)22.23.set suggestCorrections = value; 24.再次編譯并運行選項窗口應用程序。下面的屏幕快照顯示了應用程序的外觀。圖 5 :在 PropertyGrid中顯示的不帶類型轉換器的自定義數(shù)據(jù)類型請注意SpellcheckOptions屬性的外觀。與示。如果要在自己的復雜類型中提供與.NET用 TypeConverter 和 UITypeEditor 類。.NET 框架類型不同,它不展開或顯示自定義的字符串表 框架類型相同的編輯體驗,該如何處理呢? .NET框架類型使類提供大部分 Prop erty
31、Grid編輯支持,您也可以使用這些添加可展開屬性支持要使 PropertyGrid TypeCon verter 將對象類型轉換為 會將String 程。屬性,您需要創(chuàng)建Typ eCo nverter。使用 TypeConverter TypeCon verter 類可以簡化這一過能夠展開 SpellingOptions提供了從一種類型轉換為另一種類型的方法。P ro pertyGridStri ng,并使用該Stri ng在網(wǎng)格中顯示對象值。在編輯過程中,轉換回對象類型。.NET 框架提供的 ExpandableObjectConverter提供可展開對象支持1.創(chuàng)建一個從 Exp anda
32、bleObjectConverter繼承而來的類。2.1.P ublic class Sp elling Op tionsConverter:Ex pandableObjectConverter2. 如果destinationType參數(shù)與使用此類型轉換器的類(示例中的SpellingOptions類)的類型相同,則覆蓋CanConvertTo方法并返回true ;否則返回基類 CanConvertTo方法的值。1.2.p ublic override bool CanConvertTo(IT yp eDescri ptorContext context,System.T ype destin
33、ationT ype).5.6.7.if (destinationT ype = typ eof(S pelling Op tions) return true;return base.CanConvertTo(context, destinationT yp e); 覆蓋ConvertTo 方法,并確保destinationType 參數(shù)是一個String ,并且值的類型與使用此類型 轉換器的類(示例中的Sp elli ngOp tio ns類)相同。如果其中任一情況為 false,都將返回基類ConvertTo 方法的值;否則,返回值對象的字符串表示。字符串表示需要使用唯一分
34、隔符將類的每個屬性隔 開。由于整個字符串都將顯示在Prop ertyGrid中,因此需要選擇一個不會影響可讀性的分隔符,逗號的效果通常比較好。..9.10.11.J12.(可選)p ublic override object ConvertTo(IT yp eDescri ptorContext context, CultureInfo culture,object value, System.T ype destinationT ype)if (destinationT ype = typ eof(System.String) &value is Sp ellin
35、g Op tions)Sp elling Op tions so = (Sp elling Op tions)value;return 在鍵入時檢查:+ so.SpellCheckWhileTyping +,檢查大小寫:+ so.SpellCheckCAPS +,建議更正 :+ so.SuggestCorrections;return base.ConvertTo(context, culture, value, destinationT yp e);通過指定類型轉換器可以從字符串進行轉換,您可以啟用網(wǎng)格中對象字符串表示的編輯。要執(zhí)行此操作,首先需要覆蓋 CanConvertFrom方法并返回
36、true (如果源Type 參數(shù)為String 類型);否則,返回基類CanConvertFrom方法的值。1.p ublic override bool CanConvertFrom(IT yp eDescri ptorContext context, System.T ypesourceT ype)2.3.if (sourceT ype = typ eof(string)4.return true;5.return base.CanConvertFrom(context, sourceT yp e);6.同樣需要覆蓋5.要啟用對象基類的編輯,String,將返回基類SpellingOpti
37、ons類)的新實例。ConvertFrom方法并確保值參數(shù)是一個String。如果不是方法的值;否則,返回基于值參數(shù)的類(示例中的您需要根據(jù)值參數(shù)解析類的每個屬性的值。了解在ConvertTo 方法ConvertFrom中創(chuàng)建的分隔字符串的格式將有助于您的解析。1.p ublic override object ConvertFrom(IT yp eDescri ptorContext context, CultureInfoculture, object value)2.3.if (value is string) 4.try 5.string s = (string) value;6.in
38、t colon = s.lndexOf(:);7.int comma = s.lndexOf(,);8.if (colon != -1 & comma != -1) 9.10.string checkWhileT yping = s.Substring(colon + 1 , (comma - colon - 1); colon = s.IndexOf(:, comma + 1);11.comma = s.IndexOf(, comma + 1);12.string checkCa ps = s.Substring(colon + 1 , (comma - colon -1);13.colon
39、 = s.IndexOf(:, comma + 1);14.string suggCorr = s.Substring(colon + 1);15.Sp elling Op tions so = new Sp elling Op tions();16.so.S pellCheckWhileT yp ing =Boolean .P arse(checkWhileT ypi ng);17.so.S pellCheckCA PS = Boolean. Parse(checkCa ps);18.so.SuggestCorrections = Boolean .P arse(suggCorr);19.r
40、eturn so;20.21.22.catch 6.throw new ArgumentExce ption( 無法將 “+ (string)value + 轉換為 SpellingOptions類型);28.27.return base.ConvertFrom(context, culture, value);29.6.現(xiàn)在已經(jīng)有了一個類型轉換器類,下面您需要確定使用該類的目標類。您可以通過將Typ eConverterAttribute應用到目標類(示例中的Sp elli ngOp tio ns類)來執(zhí)行此操作。1./ 應用于 SpellingOptions類的 Typ
41、eConverter特性。2.3.4.Typ eConverterAttribute(t yp eof(S pelling Op tionsConverter), Descri ptionAttribute(展開以查看應用程序的拼寫選項。P ublic class Sp elling Op tions . )再次編譯并運行選項窗口應用程序。下面的屏幕快照顯示了選項窗口目前的外觀。圖 6 :在 PropertyGrid中顯示的帶有類型轉換器的自定義數(shù)據(jù)類型注意:如果只需要可展開對象支持,而不需要自定義字符串表示,則只需將 Typ eCo nverterAttribute應用到類中。將 Ex pa
42、n dableObjectCo nverter指定為類型轉換器類型。添加域列表和簡單的下拉列表屬性支持對于基于 En um 類型返回枚舉的屬性,Prop ertyGridEn umCo nverter也提供了這一功能。對于自己的屬性,稱為選取列表或域列表),而其類型并不是基于En um則屬于這種情況。會自動在下拉列表中顯示枚舉值。您可能希望為用戶提供一個有效值列表(有時也。如果域值在運行時之前未知,或者值可以更改,修改選項窗口,提供一個用戶可從中選擇的默認文件名的域列表。您已經(jīng)將DefaultFileName 屬性添加到App Sett in gs類。下一步是在Prop ertyGrid中顯示
43、屬性的下拉列表,以提供域列表。提供簡單的下拉列表屬性支持1.創(chuàng)建一個從類型轉換器類繼承而來的類。由于DefaultFileName屬性屬于String 類型,因此可以從中繼承。如果屬性類型的類型轉換器不存在,則可以從Typ eConverter繼承;這里StringConverter并不需要。2.1. p ublic class FileNameConverter: StringConverter 覆蓋GetStandardValuesSupported方法并返回true,表示此對象支持可以從列表中選取的一組標準值。1.P ublic override bool GetStandardValu
44、esS uppo rted(IT yp eDescri ptorContext context).return true;覆蓋 GetStandardValuesStandardValuesCollection以使用填充了建議的默認文件名的方法并返回填充了標準值的StandardValuesCollection。創(chuàng)建的方法之一是在構造函數(shù)中提供一個值數(shù)組。對于選項窗口應用程序,您可String 數(shù)組。1.p ublic override StandardValuesCollection GetStandardValues(IT yp eDescri ptorContext4.2.
45、3.4.(可選)并返回context)return new StandardValuesCollection(new string如果希望用戶能夠鍵入下拉列表中沒有包含的值,請覆蓋 false 。這從根本上將下拉列表樣式變成了組合框樣式。新文件, 文件1, 文檔1);GetStandardValuesExclusive方法1.p ublic override bool GetStandardValuesExclusive(IT yp eDescri ptorContext context)2.3.return false;4.5.擁有自己的用于顯示下拉列表的類型轉換器類后,您需要確定使用該類的
46、目標。在本示例中,目標為屬性,因為類型轉換器是針對該屬性的。將DefaultFileName屬性中。Typ eConverterAttribute應用到目標1.2.3./ 應用到 DefaultFileName 屬性的 TypeConverterTyp eConverter(t yp eof(FileNameConverter),CategoryAttribute(文檔設置)特性。4.5.6.p ublic string DefaultFileNameget return defaultFileName; 7.8.set defaultFileName = value; 再次編譯并運行選項窗口
47、應用程序。下面的屏幕快照顯示了選項窗口目前的外觀。請注意DefaultFileName屬性的外觀。圖 7 :在 PropertyGrid中顯示下拉域列表為屬性提供自定義UI框架類型使用Typ eCo nverter編輯支持??梢允褂?UITyp eEditor如上所述,.NETProp ertyGrid和UITypeEditor類(以及其他類)來提供有關如何使用TypeConverter,請參閱 對自定義類型的支持一節(jié);您也類來自定義 Prop ertyGrid 。您可以在 Prop ertyGrid在自定義中執(zhí)行此操作,然后,覆蓋UITy peEditor. Pai ntValueGrap
48、hics參數(shù)繪制圖形。最后,將中提供小圖形表示和屬性值,類似于為請從 UITypeEditorImage 和Color類提供的內容。要繼承,覆蓋 Get Pai ntValueSu pp orted并返回 true方法,并在自己的方法中使用Pai ntValueEve ntArgs.Editor特性應用到使用UITy peEditor類的類或屬性。F面的屏幕快照顯示了結果外觀。圖 8 :在 PropertyGrid中顯示屬性的自定義圖形您也可以提供自己的下拉列表控件,這與Control.Dock屬性用來為用戶提供靠接選擇的控件類似。要執(zhí)行此操作,請從 UITypeEditor繼承,覆蓋 Get
49、EditStyle ,然后返回一個 UITypeEditorEditStyle枚舉值,例如Drop Dow n。您的自定義下拉列表控件必須從Co ntrol 或Co ntrol的派生類(例如UserCo ntrol)繼承而來。然后,覆蓋UITy peEditor.EditValue方法。使用 IService Provider參數(shù)調用IService Provider.GetService方法,以獲取一個IWin dowsFormsEditorService方法來顯示您的自定義下 類的類或屬性中。圖 9 :在 PropertyGrid中顯示屬性的自定義下拉列表控件實例。最后,調用 IWindowsFormsEditorService.DropDownControl 拉列表控件。請記住將 Editor 特性應用到使用 UlTy peEditorF面的屏幕快照顯示了結果外觀。19.Prop ertyGrid以顯示其他屬性選項Microsoft Visual C#? .NET中的屬性瀏選項卡(帶有閃電圖形的按鈕)就是一個自 的另一個示例??梢允褂?。Eve nts圖 10 :在 PropertyGrid中顯示自定義選項卡除了使用 TypeEditor 和UITypeEdit
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年供應商季度合作合同模板
- 2025年互聯(lián)網(wǎng)公司專利授權協(xié)議
- 2025年日化產(chǎn)品策劃與技術創(chuàng)新協(xié)議
- 2025年交易賣方購貨合同樣本
- 2025年借款抵押合同范例
- 2025年工程設計與施工補充合同
- 2025年債務履約保證協(xié)議
- 2025年電力線路設計與施工合同參考
- 2025年江西貨運從業(yè)資格考試題目和答案大全
- 2025年信息技術并購協(xié)議
- 2023年上海市秋考語文真題試卷含答案(整理版)
- 2023年心理咨詢師之心理咨詢師基礎知識考試題庫附完整答案【有一套】
- 路緣石安裝一級安全交底
- 一級建造師繼續(xù)教育最全題庫及答案(新)
- LS/T 1226-2022糧庫智能通風控制系統(tǒng)
- 直線加速器專項施工方案
- 聯(lián)苯二氯芐生產(chǎn)工藝及產(chǎn)排污分析
- 儲能設備項目采購供應質量管理方案
- 美國房地產(chǎn)市場特征、框架與周期演變
- 光伏發(fā)電工程施工組織設計施工工程光伏發(fā)電工程光伏發(fā)電施工組織設計
- 民政局離婚協(xié)議書模板(4篇)
評論
0/150
提交評論