如何得到所选节点在TreeView中所出现的次数?高难!

superryu 2003-07-22 02:50:11
比如在一个TreeView里我选择了任意一个节点,TEXT是“XXX”,这个节点可能会有兄弟节点,父节点,子节点。另外他的兄弟节点可能还会有子节点,父节点可能还会有兄弟节点,这些节点中都有可能出现“XXX”,我想求的是所选的这个节点“XXX”和在它以上的所有节点里出现的次数。比如在所选节点“XXX”以上的节点中还有3个节点的TEXT也是“XXX”,那么所求出的值应该是4(加上本身)。

其实我这么做的目的是为了定位。左边是一个TREEVIEW,右边是一个RichTextBox,里面的读取的一个XML文件,TREEVIEW里面是XML文件的Element节点,我想实现点击树中的一个节点,在右边的RichTextBox会定位到XML文件中相应的节点上。因为可能会有重名的节点,所以这个问题变的比较麻烦,请帮我!
...全文
42 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
superryu 2003-07-22
  • 打赏
  • 举报
回复
这个问题我已经解决了,不过不是按照你们说的方法,不过ddy2000(梦归自然)兄给了我一点启发,谢谢你,也谢谢大家的支持!
liduke 2003-07-22
  • 打赏
  • 举报
回复
1、找到根结点
2、递归查子结点是否相等存在
liduke 2003-07-22
  • 打赏
  • 举报
回复
我觉得
1、要先定位到根结点
2、递归每个子结点,比较是不是相等
雪狼1234567 2003-07-22
  • 打赏
  • 举报
回复
其实比较简单,你在TreeNode的Tab属性里保存一个唯一的值,也就是建树值,然后统计就可能啦
beachday 2003-07-22
  • 打赏
  • 举报
回复
:)

好久不见楼上的。
ddy2000 2003-07-22
  • 打赏
  • 举报
回复
这里给一个找全部"XXXX"的例子,其他的条件加上就可以
void FoundCount(TreeNode tn,string strText,ref iCount)
{
if(tn!=null && tn.Text=strText)
{
iCount++;
}
for(TreeNode td in tn.Nodes)
{
FoundCount(td,strText,ref iCount);
}
}
调用
string ss="XXXX";
int ii=0;
FoundCount(tn,ss,ref ii);
// ii 就为找到的出现次数

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧