首次提问分数可以达到100,出来送点分:)
首次提问分数可以达到100,出来送点分:)
楼主xming076(虚名)2001-12-11 23:22:57 在 .NET技术 / C# 提问 1. 我怎样才能实现一个控件集合(Collections)?比如列表控件Items属性,就是一个集合,另外Items好象也是一种属性,我就想实现类似的东西。
2. 能不能把一个窗口作为另外一个窗口的子窗口(一个部分),怎么实现?
每个问题30分 问题点数:60、回复次数:7Top
1 楼Leonardo263090(牛呆呆)回复于 2001-12-11 23:40:12 得分 20
1、先生成两个类,一个是TCollection的后代,一个是TCollectionItem的后代;
(可以被开发平台直接设计)
如:(Delphi中)
TGSProtMaps = class(TCollection)
private
FOwner: TGSProtMapper;
function GetItem(Index: Integer): TGSProtMap;
procedure SetItem(Index: Integer; Value: TGSProtMap);
protected
function GetOwner: TPersistent; override;
public
constructor Create(AOwner: TGSProtMapper);
function Add: TGSProtMap;
function Insert(Index: Integer): TGSProtMap;
property Owner: TGSProtMapper read FOwner;
property Items: TGSProtMap read GetItem write SetItem; default;
end;
TGSProtMap = class(TCollectionItem)
private
{ Private declarations }
protected
function GetDisplayName: string; override;
procedure SetDisplayName(const Value: string); override;
{ Protected declarations }
public
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
end;
然后生成一个TComponent(可以在设计时出现),包含新的TCollection后代的属性。
如:(Delphi中)
TGSProtMapper = class(TComponent)
private
FMaps: TGSProtMaps;
procedure SetMaps(const Value: TGSProtMaps);
published
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Items: TGSProtMaps read FMaps write SetMaps;
end;
Top
2 楼Leonardo263090(牛呆呆)回复于 2001-12-11 23:43:29 得分 0
2、有两个Form,Form1是主Form,执行:
Form2.Parent:= Form1;
Form2.Show;
Top
3 楼Leonardo263090(牛呆呆)回复于 2001-12-11 23:44:44 得分 0
附:Delphi 跟 C# 相近,就将就着吧。Top
4 楼qqchen79(知秋一叶)回复于 2001-12-12 02:31:14 得分 40
1. indexer对英语Item,如果要进一步模仿的话,实现:IList、IEnumerable、ICollection。Top
5 楼xming076(虚名)回复于 2001-12-12 10:13:02 得分 0
谢Leonardo263090
Form2.Parent := Form1;的方法不行,偶已经试过了。
Top
6 楼xming076(虚名)回复于 2001-12-12 10:14:17 得分 0
也谢qqchen97
能把你说的在略微具体一点吗?Top
7 楼xming076(虚名)回复于 2001-12-12 16:45:30 得分 0
我已经找到解决方法,谢谢各位!Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
