[英]Default built-in editors for the PropertyGrid control
我似乎無法在任何地方找到答案。 默認編輯器/轉換器構建到3.5 Framework PropertyGrid控件中。 否則我可以拋出哪些對象類型,它能夠可靠地顯示和編輯? 我發現了很多關於使用自定義編輯器的教程(我可能會在某些時候做)。 但是現在我的程序中我允許用戶創建自己的自定義屬性,我想知道我應該允許哪些對象類型,假設他們將在PropertyGrid中編輯它們。
請記住,有一些非公開課。
System.Object
System.Drawing.Design.UITypeEditor
System.ComponentModel.Design.CollectionEditor
System.ComponentModel.Design.ArrayEditor
System.Web.UI.Design.CollectionEditorBase
System.Web.UI.Design.WebControls.WizardStepCollectionEditor
System.Web.UI.Design.WebControls.EmbeddedMailObjectCollectionEditor
System.Web.UI.Design.WebControls.HotSpotCollectionEditor
System.Web.UI.Design.WebControls.ListItemsCollectionEditor
System.Web.UI.Design.WebControls.MenuItemStyleCollectionEditor
System.Web.UI.Design.WebControls.RoleGroupCollectionEditor
System.Web.UI.Design.WebControls.StyleCollectionEditor
System.Web.UI.Design.WebControls.SubMenuStyleCollectionEditor
System.Web.UI.Design.WebControls.TableCellsCollectionEditor
System.Web.UI.Design.WebControls.TableRowsCollectionEditor
System.ComponentModel.Design.BinaryEditor
System.ComponentModel.Design.DateTimeEditor
System.ComponentModel.Design.MultilineStringEditor
System.ComponentModel.Design.ObjectSelectorEditor
System.Windows.Forms.Design.AnchorEditor
System.Windows.Forms.Design.BorderSidesEditor
System.Windows.Forms.Design.DockEditor
System.Windows.Forms.Design.FileNameEditor
System.Windows.Forms.Design.FolderNameEditor
System.Windows.Forms.Design.ShortcutKeysEditor
System.Web.UI.Design.ConnectionStringEditor
System.Web.UI.Design.DataBindingCollectionEditor
System.Web.UI.Design.ExpressionsCollectionEditor
System.Web.UI.Design.UrlEditor
System.Web.UI.Design.XmlFileEditor
System.Web.UI.Design.WebControls.DataGridColumnCollectionEditor
System.Web.UI.Design.WebControls.DataControlFieldTypeEditor
System.Web.UI.Design.WebControls.MenuBindingsEditor
System.Web.UI.Design.WebControls.MenuItemCollectionEditor
System.Web.UI.Design.WebControls.ParameterCollectionEditor
System.Web.UI.Design.WebControls.RegexTypeEditor
System.Web.UI.Design.WebControls.TreeNodeCollectionEditor
System.Web.UI.Design.WebControls.TreeViewBindingsEditor
System.Web.UI.Design.WebControls.DataPagerFieldTypeEditor
System.Messaging.Design.QueuePathEditor
System.Drawing.Design.ImageEditor
System.Drawing.Design.ColorEditor
System.Drawing.Design.ContentAlignmentEditor
System.Drawing.Design.CursorEditor
System.Drawing.Design.FontEditor
System.Drawing.Design.FontNameEditor
System.Drawing.Design.IconEditor
System.Workflow.ComponentModel.Design.TypeBrowserEditor
System.Workflow.ComponentModel.Design.BindUITypeEditor
您可能希望查看從UITypeEditor
派生的類(在System.Drawing.Design
命名空間中 )。 這些類型將作為參數傳遞給EditorAttribute
(在System.ComponentModel
命名空間中 )。
您還可以查看類型的元數據以查看EditorAttribute
的應用位置。 但是, 不要在這里使用反射,因為這不是PropertyGrid
類使用的。
而是使用TypeDescriptor
類來獲取類型屬性的屬性描述符(調用靜態GetProperties
方法 )。 然后,使用PropertyDescriptor
實例,調用GetEditor
方法以獲取該屬性的編輯器實例。
除了UITypeEditors之外,PropertyGrid還能夠顯示任何具有TypeConverter的對象,該對象為CanConvertFrom(String)返回true。 您可以為特定對象類型實現自己的TypeConverters,以實現此目的。
您實際上可以在PropertyGrid中拋出任何對象。 它會自動完成很多事情。 如果您希望獲得本機提供的特殊編輯體驗,則只需創建自定義UI類型編輯器。 即使在這種情況下,你按照屬性而不是整個對象來做。
PropertyGrid使用TypeConverters,每種基本類型(以及基本類型的集合)都有TypeConverters。
只要您使用其中一種基本類型或基本類型集合,屬性網格就應該能夠提供編輯UI。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.