专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > .NET组件控件

自定义控件 未找到 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里有“关于”对话框组件吗

    【求助】.NET里有“关于”对话框组件吗? 小弟最近在用C#写东西,程序已经基本完工了,现在是想弄一个“关于”对话框,就是通常在“帮助...

  • VS2005 控件在winform下只能拖放,不能移动,该怎么解决

    VS2005 控件在winform下只能拖放,不能移动 VS2005 控件在winform下只能拖放,不能移动;在webform下直接拖放都不行.只能从工具箱里...

  • select控件解决方案

    select控件 怎样在select框中显示图片?并且选择一个图片后可以显示在文本框中。请高手指点一下,最好详细一些!有实现的代码更好!!谢谢...

  • devExpress 控件能否将其它文件转换成PDF,该怎么处理

    devExpress 控件能否将其它文件转换成PDF 1..devExpress 控件能否将其它文件转换成PDF(编程的方式自动转换)2.能否在指定位置给现...

  • 初学者求助,关于学习的方法

    菜鸟求助,关于学习的方法 我们刚开始学C#窗体控件,有哪位大虾能给提点学习这方面的建议 ------解决方案-------------------- 找...

  • 关于VS2005添加自定义控件DLL,该怎么解决

    关于VS2005添加自定义控件DLL 我在工具箱里点选择项,浏览dll文件,点确定,但是工具箱里没有显示我选择的控件 ------解决方案-------...

  • fullcalendar怎么绑定数据源

    fullcalendar如何绑定数据源 我做OA的日程安排功能,用的fullcalendar控件,第一次接触各种不会 我想让fullcalendar从绑定的数据源...

  • 求人解答窗口间传递数值有关问题

    求人解答窗口间传递数值问题 我想做的是在Form1里textbox输入字符串或者数字,然后Form2里的 label1 能够显示出来 但是在两个...

  • C# 多项目互相调用

    C# 多项目相互调用 C#的解决方案中有多个项目(WinForm) 各项目都有自定义的组件、控件、公共变量 不同项目之间怎样相互调用、使...

热门推荐: