UITypeEditor的一些问题..
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);
}
}