CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

怎么使得继承自CollectionBase的Items在设计时的内容持久?

楼主bys_home(我是天才)2005-11-08 08:23:42 在 .NET技术 / C# 提问

怎么使得继承自CollectionBase的Items在设计时的内容持久?  
  类似ListView中的Items一样,他设计后会在代码中生成ListViewItem,我怎么修改我的代码才能使得我的Items也会自动在代码中生成Item的相关代码?  
  还有一个问题就是:  
  我在CollectionBase中重写了OnInsertComplete后,在属性中点击“增加”时会执行我的OnInsertComplete代码.  
  但我重写了CollectionBase的OnRemoveComplete时,点击“移除”时却不执行我的OnRemoveComplete中的代码,为何?  
  问题点数:100、回复次数:8Top

1 楼bys_home(我是天才)回复于 2005-11-08 17:18:05 得分 0

提前一下Top

2 楼mapserver(杨东 http://mapserver.cnblogs.com)回复于 2005-11-08 18:00:18 得分 50

如下:  
  public   class   A   :CollectionBase  
  {  
          ...  
  }  
   
  public   class   B   :   Component       //   是个控件。  
  {  
          private   A   _a;  
   
          //   加上下面一句话  
          [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]  
          public   A   A  
          {  
                  set{_a   =   value;}  
                  get{return   _a;}  
          }  
  }  
   
  不知道楼主是不是一个控件的属性为Collection类型,但是通过“Design   Time”填入的值,不能被保存的问题。Top

3 楼mapserver(杨东 http://mapserver.cnblogs.com)回复于 2005-11-08 18:01:58 得分 0

第二个问题可能不第一个问题有很大的关系。Top

4 楼bys_home(我是天才)回复于 2005-11-09 09:48:52 得分 0

(WINFORM)  
  public   class   A   :CollectionBase  
  {  
          ...  
  }  
   
  public   class   B   :   System.Windows.Forms.Control//   我是继承自控件的  
  {  
          private   A   _a   =   null;  
  public   B()                       //我加了这个,是要实例化的  
  {  
  _a   =   new   A();  
  }  
          //   加上下面一句话。。。这个我加过了。  
          [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]  
          public   A   A  
          {  
                  set{_a   =   value;}  
                  get{return   _a;}  
          }  
  }Top

5 楼mapserver(杨东 http://mapserver.cnblogs.com)回复于 2005-11-09 09:54:54 得分 50

如果为Component上面这样写就对了。  
  但是为Control的话,好像你的class   B在构造的时候,还要对其继承的基类进行构造吧。我也没有写过Control,你自己试试,有问题在贴出来,大家一起解决。Top

6 楼bys_home(我是天才)回复于 2005-11-09 09:57:47 得分 0

第二个问题我已经解决了,原来重载OnClearComplete就行了。但第一个问题还在。。。Top

7 楼bys_home(我是天才)回复于 2005-11-09 10:16:36 得分 0

//以下代码是我写这个控件的基本结构,请帮我看看有什么问题  
  public   class   ControlItem  
  {  
  private   string   strText;  
  public   string   Text  
  {  
  get  
  {  
  return   strText;  
  }  
  set  
  {  
  strText   =   value;  
  }  
  }  
  }  
  public   class   ControlItemCollection   :   System.Collections.CollectionBase  
  {  
  private   MyControl   _Owner;  
  public   ControlItemCollection(MyControl   Owner)  
  {  
  _Owner   =   Owner;  
  }  
  public   ControlItem   this[int   index]  
  {  
  get  
  {  
  return   (ControlItem)List[index];  
  }  
  set  
  {  
  List[index]   =   value;  
  }  
  }  
  public   int   Add(ControlItem   value)  
  {  
  return   List.Add(value);  
  }  
  //...IndexOf/Insert/Remove/Contains/等方法  
  }  
  public   class   MyControl   :   System.Windows.Forms.Control  
  {  
  private   ControlItemCollection   _Items   =   null;  
  public   MyControl()  
  {  
  if(_Items   ==   null)  
  _Items   =   new   ControlItemCollection(this);//在Collection中我要用到他  
  }  
  //我看ListView也没有Set吧,所以我没有写了  
  //现在出现的问题是,我在设计界时,有数据的,但数据无法保存到窗口的代码中  
  //就像ListView,但我在设置时的ListViewItem不一保存在代码中一样。  
  [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]  
  public   ControlItemCollection   Items  
  {  
  get  
  {  
  return   _Items;  
  }  
  }  
  }Top

8 楼bys_home(我是天才)回复于 2005-11-10 10:55:35 得分 0

自己解决了!高兴。。。  
  bys_home@hotmail.comTop

相关问题

  • 请问既然Ilist已经继承了ICollection,为何CollectionBase类仍然要同时继承这2个接口?
  • 继承
  • 继承
  • 继承??
  • 继承!!!
  • 我自己写了一个比较成熟的框架,从表现层到持久层都能很好的解决,表现层继承了struts,抛弃标签处理,能自动生成页面程序,请问这样找工
  • 继承控件
  • 关于继承
  • 继承问题
  • 代码继承!

关键词

  • 代码
  • 控件
  • 解决
  • null
  • collectionbase
  • controlitemcollection
  • designerserializationvisibility
  • controlitem
  • 继承
  • mycontrol

得分解答快速导航

  • 帖主:bys_home
  • mapserver
  • mapserver

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo