你要干什么,重写控件的clone方法吗?

解决方案 »

  1.   

    IClonable实现深度拷贝,举个例子
    public class TDir : IClonable
    {
    private string[] _dirs;
    private string[] _files; public TDir() 
    {
    _dirs = null;
    _files = null;
    } public object Clone() // deep copy
    {
    TDir copy = new TDir(); if (_dirs != null) 
    {
    ArrayList list = new ArrayList(_dirs.Length);
    foreach (string i in _dirs)
    list.Add(i);
    copy._dirs = (string[])list.ToArray(typeof(string));
    } if (_files != null) 
    {
    ArrayList list = new ArrayList(_files.Length);
    foreach (string i in _files)
    list.Add(i);
    copy._files = (string[])list.ToArray(typeof(string));
    } return copy;
    }
    }