先给个删除的
if (this.treeView1.SelectedNode.Nodes.Count == 0)
this.treeView1.Nodes.Remove(this.treeView1.SelectedNode);
if (this.treeView1.SelectedNode.Nodes.Count == 0)
this.treeView1.Nodes.Remove(this.treeView1.SelectedNode);
解决方案 »
- 请教一个数组 复制的函数
- 问一个数据库连接的问题
- 用sesson和datatable做购物车,datetable做数据源绑定datalist怎么删除datatable的一行呢,
- 请大家帮我看一下这条语句,为什么总是提示错误?
- 巨分:一道 计算机COM接口间的文件传输 编程实现 面试题,非高手勿入!
- 求c#多线程的教程 正则表达式的教程
- 简单问题:大于等于5小于等于10如何用表达式?
- 简单问题!~~~ 帮帮忙! :(
- 100分:“/WordPrint”应用程序中的服务器错误
- .NET(二次安装问题求救)
- 自定义带集合属性的控件在GridView模板列中的不能绑定数据,值为空,不报异常
- 关于分离的问题
判断child是否为空,不为空return
{
foreach (TreeNode td in tnodes)
{
if (td.Name == s) return true;
if (td.Nodes.Count > 0)
if (isIn(td.Nodes, s)) return true;
}
return false; } if (isIn(this.treeView1.Nodes, "节点name"))
MessageBox.Show("有");
else
MessageBox.Show("没有");
问题1:添加时判断是否存在相同的name
private void ADDTreeNode()
{
//判断是否有重名
if(TraverseTreeNode(string reName))
{
MessageBox.Show("该节点已经存在!", "提示");
}
else
{
//添加节点(不知道你想查入哪里)
}
}
private bool TraverseTreeNode(string reName)
{
//添加节点和当前节点的子节点之间是否有重名
if (this.TreeRoom.SelectedNode.Nodes.Count > 0)
{
foreach (TreeNode node in this.TreeRoom.SelectedNode.Nodes)
{
if (reName == node.Text)
return true;
}
return false;
}
//添加节点和当前节点的同级节点之间是否有重名(前提当前节点的父节点存在)
else if (this.TreeRoom.SelectedNode.Parent.Nodes.Count > 0)
{
foreach (TreeNode node in this.TreeRoom.SelectedNode.Parent.Nodes)
{
if (reName.CompareTo(node.Text) == 0)
return true;
}
return false;
}
}
问题2:删除treeview节点时如果存在子节点,则不允许删除
private void DelTreeNode()
{
//判断是否有子节点
if(this.TreeRoom.SelectedNode.Nodes.Count>0)
{
MessageBox.Show("该节点包含子节点!", "提示");
}
else
{
//移除当前节点
this.TreeRoom.SelectedNode.Remove();
}
}
补充:
问题1:不知道你添加节点重名判断是否在整棵树里面,如果那样需要遍历整棵树。
private bool TraverseTreeNode(string reName)
{
bool flag = false;
foreach (TreeNode node in TreeRoom.Nodes.Nodes)
{
if(node.Nodes.Count>0)
{
flag = TraverseTreeNode(reName);
if(flag)
return true;
}
else
{
if (reName.Equals(node.Text))
return true;
}
}
return false;
}
代码我没有测试,你试试看看!
{
foreach (TreeNode td in tnodes)
{
........// 处理Treenode td
if (td.Nodes.Count > 0)
bl(td.Nodes);
}
}
汉!
遍历也有问题
private bool TraverseTreeNode(string reName)
{
bool flag = false;
foreach (TreeNode node in TreeRoom.Nodes)
{
if(node.Nodes.Count> 0)
{
flag = TraverseTreeNode(reName);
if(flag)
return true;
}
else
{
if (reName.Equals(node.Text))
return true;
}
}
return false;
}
如果反回0 就插入