自定义控件 未找到 xx 类型上的构造函数,该怎么解决
发布时间:2011-06-24 19:13:26 文章来源:www.iduyao.cn 采编人员:星星草
自定义控件 未找到 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; }
}
}
------解决方案--------------------
点击添加时, 会调用
ListBoxExItem()
而你的没有, 定义一个默认构造函数, 初始化成员变量为默认值.
就可以了.
------解决方案--------------------
添加一个默认构造函数
public ListBoxExItem()
{
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
虚心求教
本人刚学.net,有好多的问题明白,求大侠帮忙解释一下这个问题,本人不胜感激。
<asp:TreeNode Text="添加" Value="添加"...
-
【求助】.NET里有“关于”对话框组件吗?
小弟最近在用C#写东西,程序已经基本完工了,现在是想弄一个“关于”对话框,就是通常在“帮助...
-
VS2005 控件在winform下只能拖放,不能移动
VS2005 控件在winform下只能拖放,不能移动;在webform下直接拖放都不行.只能从工具箱里...
-
select控件
怎样在select框中显示图片?并且选择一个图片后可以显示在文本框中。请高手指点一下,最好详细一些!有实现的代码更好!!谢谢...
-
devExpress 控件能否将其它文件转换成PDF
1..devExpress 控件能否将其它文件转换成PDF(编程的方式自动转换)2.能否在指定位置给现...
-
菜鸟求助,关于学习的方法
我们刚开始学C#窗体控件,有哪位大虾能给提点学习这方面的建议
------解决方案--------------------
找...
-
关于VS2005添加自定义控件DLL
我在工具箱里点选择项,浏览dll文件,点确定,但是工具箱里没有显示我选择的控件
------解决方案-------...
-
fullcalendar如何绑定数据源
我做OA的日程安排功能,用的fullcalendar控件,第一次接触各种不会
我想让fullcalendar从绑定的数据源...
-
求人解答窗口间传递数值问题
我想做的是在Form1里textbox输入字符串或者数字,然后Form2里的 label1 能够显示出来
但是在两个...
-
C# 多项目相互调用
C#的解决方案中有多个项目(WinForm)
各项目都有自定义的组件、控件、公共变量
不同项目之间怎样相互调用、使...