TreeView 问题

wwwhch2004 2007-07-30 11:01:07
public void GetNode(TreeNodeCollection tc)
{
string ss="";
foreach(TreeNode TNode in tc )
{
TNode.Expanded = true;
if (TNode.NodeData.ToString().Substring(2,TNode.NodeData.ToString().Length-2)==curCustomTypeID.ToString())
{
trvType.SelectedNodeIndex =TNode.GetNodeIndex();
}
GetNode(TNode.Nodes);
break;
}
}
我想通过遍历找到TNode.NodeData=curCustomTypeID,treeview需要展开,但是这样写是全部都展开了,想请教怎么能不用全部展开,只需要对TNode.NodeData=curCustomTypeID 的时候展开对应的节点! 谢谢!!!
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwhch2004 2007-07-30
  • 打赏
  • 举报
回复
对不起,上面的代码发错了

private void FindInTree(TreeNodeCollection tc)
{
string ss="";
foreach(TreeNode tn in tc)
{
if (tn.NodeData.ToString().Substring(2,tn.NodeData.ToString().Length-2)==curCustomTypeID.ToString())
{
ExpandTree(tn);
ss="ret";
return;
}

if(ss=="")
FindInTree(tn.Nodes);
else
break;
}
}
private void ExpandTree(TreeNode objTreeNode)
{
string strIndex = "0";

objTreeNode.Expanded = true;

strIndex = objTreeNode.GetNodeIndex();

while (objTreeNode.Parent is TreeNode)
{
objTreeNode = ((TreeNode)objTreeNode.Parent);
objTreeNode.Expanded = true;
}

trvType.SelectedNodeIndex = strIndex;
}

这才是真的
wwwhch2004 2007-07-30
  • 打赏
  • 举报
回复
我问题中写的是将所有的节点都展开了,但是我需要的是只展开定位的节点和该节点的父节点(不知道大家是否明白).
很感谢大家的群策群力的参与,这几天我也一直在考虑和学习中.现在将实现的代码贴出来,供参考
private void ExpandTree(TreeNode objTreeNode)
{
string strIndex = "0";

objTreeNode.Expanded = true;

strIndex = objTreeNode.GetNodeIndex();

while (objTreeNode.Parent is TreeNode)
{
objTreeNode = ((TreeNode)objTreeNode.Parent);
objTreeNode.Expanded = true;
}

trvType.SelectedNodeIndex = strIndex;
}

//调用


private void expandTree(string v, TreeNodeCollection nodes)
{
foreach(TreeNode node in nodes)
{
if(node.NodeData.ToString().Substring(2,node.NodeData.ToString().Length-2) ==v)
{
TreeNode Tnode=node;
while(Tnode!=null)
{
Tnode.Expanded =true;
trvType.SelectedNodeIndex =Tnode.GetNodeIndex();
}
}
expandTree(v,node.Nodes);
}
}
zs621 2007-07-30
  • 打赏
  • 举报
回复
把TreeView的 ExpandDepth设置为0
即: ExpandDepth="0"
JavaK 2007-07-30
  • 打赏
  • 举报
回复
你的问题应该是,不需要一下子全部加载进去,而是需要的时候加进去。
小码 2007-07-30
  • 打赏
  • 举报
回复
foreach(TreeNode TNode in tc )
{
TNode.Expanded = true;

if (TNode.NodeData.ToString()==curCustomTypeID.ToString())
{trvType.SelectedNodeIndex =TNode.GetNodeIndex();}

GetNode(TNode.Nodes);
break;
}

110,571

社区成员

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

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

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