0

如何为泛型类型的所有实例指定自定义 UI 编辑器?该类型是在另一个我不拥有的程序集中定义的。


这是我尝试过的,受到https://stackoverflow.com/a/849778/284795的启发,但没有任何效果(旧编辑器仍然存在)。在这里,泛型类型List<>和自定义编辑器DateTimeeditor- 废话,但这只是一个示例。

TypeDescriptor.AddAttributes(typeof(List<>),new EditorAttribute(typeof(System.ComponentModel.Design.DateTimeEditor),typeof(UITypeEditor)));
TypeDescriptor.GetEditor(new List<int>(),typeof(UITypeEditor)).Dump();
4

1 回答 1

0

尝试以下内容

Customer是任意类

EditorBase定义为

public class EditorBase : System.Drawing.Design.UITypeEditor {
}

代码:

System.Collections.Hashtable table = new System.Collections.Hashtable();

table.Add(typeof(Customer), typeof(EditorBase).AssemblyQualifiedName);

System.ComponentModel.TypeDescriptor.AddEditorTable(typeof(System.Drawing.Design.UITypeEditor), table);

object editor = System.ComponentModel.TypeDescriptor.GetEditor(typeof(Customer), typeof(System.Drawing.Design.UITypeEditor));
于 2012-10-25T12:38:41.623 回答