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);
}
}
{
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);
}
}
解决方案 »
- 难道没人能解决么。。。高手呢?大神呢?
- c# 传入数据库 两次传入需要传入数据库中的一行! 急!
- 关于工厂模式
- 急急!!!由于以下错误: 0x80040154,无法创建 CLSID 为“{E436EBB3-524F-11CE-9F53-0020AF0BA770}”的 COM 对象。
- 如何在C#中编程实现 搜索SQL2000中的表,找出符合条件的行
- DateTimePicker的颜色设定
- .net2.0 serialPort 读不了数据
- txt文本文件的编辑
- 请问能在Visual Studio 2005环境下开发.NET 1.1的程序吗?
- .NET 连接MySQL数据库问题
- The process cannot access the file
- 利用c#做图片合成 哪里有高手 帮帮我
里面用的是
if....else 判断,有更好的方法吗?