PropertyGrid控件的默认内置编辑器

12

我似乎找不到这个问题的答案。3.5框架的PropertyGrid控件内置了哪些默认编辑器/转换器?否则,我可以使用哪些对象类型并且它能够可靠地显示和编辑?我已经发现很多关于使用自定义编辑器的教程(在某些时候我可能会用到),但是现在在我的程序中,我允许用户创建自己的自定义属性,我想知道应该允许哪些对象类型,假设他们将在PropertyGrid中进行编辑。

5个回答

8
请记住,有一些非公共类。
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


1
除了UITypeEditors之外,PropertyGrid还能够显示任何具有TypeConverter的对象,该对象返回CanConvertFrom(String)为true。您可以为特定对象类型实现自己的TypeConverters以实现此目的。

1

实际上,您可以将任何对象投掷到PropertyGrid中。它会自动执行许多操作。如果您想要特殊的编辑体验,而本地提供的功能无法满足您的需求,则只需要创建自定义UI类型编辑器。即使在这种情况下,您也是针对每个属性进行操作,而不是整个对象。


但是它会自动完成哪些事情呢?现在我不想处理自定义编辑器。我尝试了各种数字、字符串、布尔和日期时间,它们都可以工作或具有内置编辑器。我希望有一个列表,列出所有可以默认编辑的类型。 - Eric Anastas
如果您的属性类型附有UITypeEditor属性,则可以查看其继承层次结构。默认情况下,属性网格需要编辑器或类型转换器才能从/转换为字符串。 - grover

1

PropertyGrid使用TypeConverters,每个原始类型(以及原始类型的集合)都有对应的TypeConverters。

只要使用其中一种原始类型或原始类型的集合,属性网格就应该能够负责提供编辑UI。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接