因此,这是代码,我希望treeView1.Nodes既包含TreeNodes又包含XmlNodes,尤其是像上面的代码中那样存储此类对象:
public class Node : TreeNode
{
public XmlNode node{ set; get; }
public Node(XmlNode node):base(){
this.node = node;
base.Text = node.Name;
}
public void delete()
{
node.RemoveAll();
node = null;
base.Remove();
}
}
private void populate(XmlNodeList nodes, TreeNodeCollection tree)
{
if (nodes != null)
{
foreach (XmlNode child in nodes)
{
int index = tree.Add(new Node(child));
if (child.ChildNodes != null)
{
populate(child.ChildNodes, tree[index].Nodes );
}
}
}
}
现在,我意识到构造的Node对象仍然存储为TreeNode,如何使上面的行成为可能?
Node selected = treeView1.SelectedNode;
selected.delete();
实际上,Node
对象不是作为TreeNode存储的,它们是TreeNode。或更确切地说,是的子类TreeNode
。因此,在您的情况下,如果您知道树中的所有节点均为类型Node
,则可以将其强制转换为:
Node selected = (Node)treeView1.SelectedNode;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句