.net cf 自定义控件集合属性奇怪问题

[复制链接]
查看11 | 回复1 | 2021-1-27 05:35:02 | 显示全部楼层 |阅读模式
我自定义了一个控件从Control或UserControl进行派生.出问题的代码如下:
----------------------------------------------------------------------------------------------------------
publicclassListBoxEx:Control//UserControl
{
publicListBoxEx()
{
this.Columns=newColumnCollection(this);
}
publicColumnCollectionColumns{get;privateset;}
publicclassColumn:System.Windows.Forms.ColumnHeader
{
publicintOrder{get;set;}
publicboolFreeSpace{get;set;}

publicnewStringAlignmentTextAlign{get;set;}
publicColumn()
{
this.Width=20;
}
}
publicclassColumnCollection:CollectionBase,IDisposable
{
privateListBoxEx_parent;
internalColumnCollection(ListBoxExparent)
{
this._parent=parent;
}
publicColumnthis[intindex]
{
get{return(Column)this.List[index];}
}
publicintIndexOf(Columnvalue)
{
returnthis.InnerList.IndexOf(value);
}
publicvoidRemove(Columncolumn)
{
this.List.Remove(column);
}
publicvoidCopyTo(Arraydest,intindex)
{
this.List.CopyTo(dest,index);
}
publicvoidInsert(intindex,Columnvalue)
{
this.List.Insert(index,value);
}
publicintAdd(Columnvalue)
{
returnthis.List.Add(value);
}
publicColumnAdd(stringtext,intwidth,StringAlignmentalignment)
{
varcolumn=newColumn(){Text=text,Width=width,TextAlign=alignment};
this.Add(column);
returncolumn;
}
publicboolContains(Columnvalue)
{
returnthis.List.Contains(value);
}
#regionImplementationofIDisposable
publicvoidDispose()
{
foreach(Componentcolumnin(CollectionBase)this)
column.Dispose();
this._parent=null;
}
#endregion
}
}
----------------------------------------------------------------------------------------------------------
同时也定义了这个控件的设计时支持代码(ListBoxEx.xmta)如下:
----------------------------------------------------------------------------------------------------------

true

System.Drawing.Size,System.Drawing,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a
100,100


DesignerSerializationVisibility.Content

System.ComponentModel.Design.CollectionEditor,System.Design
[B]System.Drawing.Design.UITypeEditor,System.Drawing[/B]


----------------------------------------------------------------------------------------------------------
但是却出现了很奇怪的问题:
在窗体设计时放入这个控件没有任何问题,为集合Columns添加元素也没有任何问题.保存编译运行都没有问题.奇怪的当在IDE中关闭这个窗体的设计窗口后再重新打开时设计器就提示错误了...
----------------------------------------------------------------------------------------------------------
未找到方法“NiiJyeni.Windows.Forms.ListBoxEx+ColumnCollection.Add”。
调用堆栈信息如下:
在System.RuntimeType.InvokeMember(Stringname,BindingFlagsbindingFlags,Binderbinder,Objecttarget,Object[]providedArgs,ParameterModifier[]modifiers,CultureInfoculture,String[]namedParams)
在Microsoft.CompactFramework.Design.TypeReflectFilter.InvokeMember(Stringname,BindingFlagsinvokeAttr,Binderbinder,Objecttarget,Object[]args,ParameterModifier[]modifiers,CultureInfoculture,String[]namedParameters)
在System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManagermanager,Stringname,CodeExpressionexpression)
在System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManagermanager,CodeStatementstatement)
----------------------------------------------------------------------------------------------------------
求高手指点.这个问题我纠结了很久了,在网上没有找到类似资料.
谢谢谢谢
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:35:02 | 显示全部楼层
求指教.....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行