class myeditor : UITypeEditor
    {
        public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
        {
            IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
            if (edSvc != null)
            {
                Form4 f = new Form4();
                // your setting here
                edSvc.ShowDialog(f);
                return f.MyValue;
            }
            return base.EditValue(context, provider, value);
        }
}重写EditValue这个方法的时候,有一个问题.比如我想不同的属性弹出不同的对话框,难道就要写多个不同的Editor吗?比如:
Test 属性我用了上面的editor,点击按钮时弹出Form4 
 [EditorAttribute(typeof(myeditor), typeof(System.Drawing.Design.UITypeEditor))]
        public  string Test
        {
            get { return test}
            set { test = value; }
        }假如有还想有
 [EditorAttribute(typeof(myeditor), typeof(System.Drawing.Design.UITypeEditor))]
        public  string Test1
        {
            get { return test1}
            set { test = value; }
        }
这个属性,点击按钮时弹出不是Form4,难道要再写一个以下 Class吗? class myeditor1 : UITypeEditor
    {
        public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
        {
            IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
            if (edSvc != null)
            {
                Form5 f = new Form5();
                // your setting here
                edSvc.ShowDialog(f);
                return f.MyValue;
            }
            return base.EditValue(context, provider, value);
        }
}