自定义控件 未找到 xx 类型上的构造函数
想实现的功能:
能为一个自定义控件的一个属性(类型为自定义类型集合List<MyStrcut>)提供设计时的编辑.
下面是我的代码,设计时能弹出集合编辑对话框,但是点击添加按钮时候,就抱未找到XX类型上的构造函数.
哪位高手指点下啊.
public class ListBoxExItem
{
public string text;
public int color;
public ListBoxExItem(string text, int color)
{
this.text = text;
this.color = color;
}
}
public class ListBoxExItemConverter : ExpandableObjectConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
if (sourceType == typeof(string))
{
return true;
}
return base.CanConvertFrom(context, sourceType);
}
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
if (destinationType == typeof(InstanceDescriptor))
{
return true;
}
return base.CanConvertTo(context, destinationType);
}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
string obj = (string)value;
string[] parameters = obj.Split(',');
ListBoxExItem item = new ListBoxExItem(
parameters[0],
int.Parse(parameters[1]));
return item;
return base.ConvertFrom(context, culture, value);
}
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
{
if (destinationType == typeof(InstanceDescriptor))
{
ListBoxExItem dp = (ListBoxExItem)value;
ConstructorInfo ctor =
typeof(ConstructorInfo).GetConstructor(new Type[] { typeof(string), typeof(int) });
return new InstanceDescriptor(ctor, new object[] {dp.text,dp.color});
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
class Class1 : ListBox
{
List<ListBoxExItem> list;
[DesignerSerializationVisibility( DesignerSerializationVisibility.Content)]
public List<ListBoxExItem> List
{
get { return list; }
set { list = value; }
}
}
能为一个自定义控件的一个属性(类型为自定义类型集合List<MyStrcut>)提供设计时的编辑.
下面是我的代码,设计时能弹出集合编辑对话框,但是点击添加按钮时候,就抱未找到XX类型上的构造函数.
哪位高手指点下啊.
public class ListBoxExItem
{
public string text;
public int color;
public ListBoxExItem(string text, int color)
{
this.text = text;
this.color = color;
}
}
public class ListBoxExItemConverter : ExpandableObjectConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
if (sourceType == typeof(string))
{
return true;
}
return base.CanConvertFrom(context, sourceType);
}
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
if (destinationType == typeof(InstanceDescriptor))
{
return true;
}
return base.CanConvertTo(context, destinationType);
}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
string obj = (string)value;
string[] parameters = obj.Split(',');
ListBoxExItem item = new ListBoxExItem(
parameters[0],
int.Parse(parameters[1]));
return item;
return base.ConvertFrom(context, culture, value);
}
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
{
if (destinationType == typeof(InstanceDescriptor))
{
ListBoxExItem dp = (ListBoxExItem)value;
ConstructorInfo ctor =
typeof(ConstructorInfo).GetConstructor(new Type[] { typeof(string), typeof(int) });
return new InstanceDescriptor(ctor, new object[] {dp.text,dp.color});
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
class Class1 : ListBox
{
List<ListBoxExItem> list;
[DesignerSerializationVisibility( DesignerSerializationVisibility.Content)]
public List<ListBoxExItem> List
{
get { return list; }
set { list = value; }
}
}
...全文
相关推荐
为C#自定义控件添加自定义事件
这里的自定义控件是由普通控件组合而成的。 希望事件响应代码推迟到使用自定义控件的窗体里写。 步骤一:新建一个用户控件,放两个按钮,Tag分别是btn1,btn2. 这两个按钮的共用单击事件处理代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Form
Delphi自定义控件开发
这本书讲的是Delphi控件开发技术,请大家以Delphi7以下版本开发该例子!
Android自定义控件步骤总结
Android自定义控件步骤总结 http://www.cnblogs.com/duanxz/p/3625589.html
Delphi自定义控件开发.pdf
Delphi自定义控件开发.pdf
Kotlin自定义View系列教程之标尺控件(选择身高、体重等)的实现
主要给大家介绍了关于Kotlin自定义View系列教程之标尺控件(选择身高、体重等)实现的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧


组件/控件开发
