treeview里,如何点击展开一个节点,就关闭其他打开的节点

phuai007 2010-09-27 01:45:24
如题:

+热门影片
-我的青春谁做主
-第1集
-第2集
-奋斗
-第1集
-第2集
+最新影片
+团长来了

当我点击打开奋斗的时候,如何将其他展开的节点如 我的青春谁做主 关闭?
...全文
560 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
phuai007 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 longhair9711 的回复:]
可以分两步操作:
1、收缩与目标node同一级别的node
2、找到目标node的总根节点,然后收缩其他的根节点

代码如下,已经通过测试:
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
//收缩与目标node同一级别的node
TreeNode tn = e.Node;……
[/Quote]
完美解决问题,非常感谢!!!
longhair9711 2010-09-27
  • 打赏
  • 举报
回复
可以分两步操作:
1、收缩与目标node同一级别的node
2、找到目标node的总根节点,然后收缩其他的根节点

代码如下,已经通过测试:
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
//收缩与目标node同一级别的node
TreeNode tn = e.Node;
if (tn.Parent != null)
{
foreach (TreeNode node in tn.Parent.Nodes)
{
if (tn != node)
{
node.Collapse();
}
}
}
//找到目标node的总根节点,然后收缩其他的根节点
while(tn.Parent !=null)
tn = tn.Parent;
foreach (TreeNode node in treeView1.Nodes)
{
if (tn != node)
{
node.Collapse();
}
}
}
phuai007 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 heiha008 的回复:]
private void tvfund_AfterExpand(object sender, TreeViewEventArgs e)
{
foreach (TreeNode item in ((TreeView)sender).Nodes)
{
if (e.Node != item)
{
item.Collapse();
}
}
}
[/Quote]

接近目标了,但是有问题,这个只针对1级节点,当点击下面的2集节点的时候就全部关闭了
a6711145 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 phuai007 的回复:]
引用 2 楼 bancxc 的回复:
Nodes.Item["我的青春谁做主"].Expand=false;


提示不包含item
[/Quote]

沒 Item 就會 有 Nodes 呀

哎 不要死學 代碼 呀
Olive_Guo 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 heiha008 的回复:]
private void tvfund_AfterExpand(object sender, TreeViewEventArgs e)
{
foreach (TreeNode item in ((TreeView)sender).Nodes)
{
if (e.Node != item)
{
item.Collapse();
}
}
}
[/Quote]

应该是这样
heiha008 2010-09-27
  • 打赏
  • 举报
回复
private void tvfund_AfterExpand(object sender, TreeViewEventArgs e)
{
foreach (TreeNode item in ((TreeView)sender).Nodes)
{
if (e.Node != item)
{
item.Collapse();
}
}
}
phuai007 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bancxc 的回复:]
Nodes.Item["我的青春谁做主"].Expand=false;
[/Quote]

提示不包含item
phuai007 2010-09-27
  • 打赏
  • 举报
回复
忘记说了,是winform程序,treeview控件的数据是动态加载xml生成的
bancxc 2010-09-27
  • 打赏
  • 举报
回复
Nodes.Item["我的青春谁做主"].Expand=false;
damjmk2 2010-09-27
  • 打赏
  • 举报
回复
可以用JS实现,模拟点击

111,129

社区成员

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

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

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