我有一个树视图,其根节点最初为Root。如果我右键单击Root节点,我将显示一个上下文菜单,其中一些选项为New和other,如果我选择New,我将向Root节点添加一个子节点。如果我再次右键单击Root节点,如果Root有子节点我想清除所有子节点并添加一个新的子节点我该怎么做
答案 0 :(得分:6)
TreeNode.Nodes为您提供了您正在查看的节点的所有子节点的列表。
然后,您可以在该集合上调用Clear以删除所有子节点。
答案 1 :(得分:1)
毕竟答案如下
if (tvwACH.HitTest(location).Node.Nodes.Count > 0 && tvwACH.SelectedNode.Parent == null )
{
foreach (TreeNode node in tvwACH.Nodes)
{
node.Nodes.Clear();
}
}
答案 2 :(得分:0)
在'right click'
处理程序中,假设您使用鼠标单击,您可以使用事件args TreeNodeMouseClickEventArgs来获取当前节点...
void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
TreeNode selectedNode = e.Node;
}
}
答案 3 :(得分:0)
您可以检查TreeNode.Nodes属性。如果count大于零,那么你有子节点,否则不是
答案 4 :(得分:0)
您也可以尝试相反的操作,即检查当前节点是否具有父节点。
if(treeView1.SelectedNode.Parent == null) {} //parent
else{} //child
答案 5 :(得分:-1)
foreach (TreeNode node in treeview.Nodes)
{
if (node.ChildNodes.Count != 0)
{
//Node exists
}
else
{
//Node doesn't exists
}
}