一、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 }
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 }
使用情况:当需要自定义属性的赋值信息时候,可以通过这样方式进行赋值