public virtual object Clone()
{
TreeNode nod = tree != null?tree.CreateNode() : new TreeNode();
foreach (DictionaryEntry e in ViewState)
{
nod.ViewState [(string)e.Key] = ((StateItem)e.Value).Value;
}
foreach (TreeNode c in ChildNodes)
{
nod.ChildNodes.Add((TreeNode)c.Clone());
}
return(nod);
}