一、UITypeEditor

  提供可用于设计值编辑器的基类,这些编辑器可提供用户界面 (UI),用来表示和编辑所支持的数据类型的对象值。简单来说,就是在propertyGrid中的属性,有两种方式:

  一种是下拉选择格式,类似于设计器的“字体”格式,下来选择“宋体”等类型,一种是带三点“...”的按钮格式,通过单据按钮弹出用户定义的窗体或者操作。

     通过继承UITypeEditor类型,重写GetEditStyle方法(确定属性的格式是下拉或者按钮),EditValue方法(返回属性值)

  

 1  public class MyUIEditor : UITypeEditor
 2     {
 3         public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
 4         {
 5             return UITypeEditorEditStyle.DropDown;
 6         }
 7 
 8         public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 9         {
10             IWindowsFormsEditorService editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
11             Form2 from = new Form2();
12             editorService.ShowDialog(from);
13             return base.EditValue(context, provider, value);
14         }
15     }
View Code
 1  private string _id1 = string.Empty;
 2 
 3         [Browsable(true)]
 4         [DisplayName("编号")]
 5         [Category("自定义")]
 6         [Description("控件唯一编号")]
 7         [Editor(typeof(MyUIEditor), typeof(UITypeEditor))]
 8         public string ID1
 9         {
10             set
11             {
12                 _id1 = value;
13             }
14             get
15             {
16                 return _id1;
17             }
18         }
View Code

   使用情况:当需要自定义属性的赋值信息时候,可以通过这样方式进行赋值

     MSDN