社区
C#
帖子详情
treeview里,如何点击展开一个节点,就关闭其他打开的节点
phuai007
2010-09-27 01:45:24
如题:
+热门影片
-我的青春谁做主
-第1集
-第2集
-奋斗
-第1集
-第2集
+最新影片
+团长来了
当我点击打开奋斗的时候,如何将其他展开的节点如 我的青春谁做主 关闭?
...全文
560
10
打赏
收藏
treeview里,如何点击展开一个节点,就关闭其他打开的节点
如题: +热门影片 -我的青春谁做主 -第1集 -第2集 -奋斗 -第1集 -第2集 +最新影片 +团长来了 当我点击打开奋斗的时候,如何将其他展开的节点如 我的青春谁做主 关闭?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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实现,模拟点击
Treeview
只
展开
一个
节点
,其他
节点
关闭
本文介绍如何使用 ASP.NET 2.0 的
TreeView
控件实现特定功能,包括
节点
的全部
展开
与
关闭
,以及仅允许
展开
一个
节点
同时
关闭
其他兄弟
节点
的方法。
WPF
TreeView
展开
和闭合所有
节点
博客围绕WPF
TreeView
展开
和闭合所有
节点
展开
。提到tvProperties是
TreeView
名称,指出若
TreeView
Item未
展开
过,无法通过ItemContainerGenerator查找子
节点
,需先将IsExpanded属性设为True并调用UpdateLayout方法,
展开
要从根
节点
到末端,收回相反。
Treeview
只
展开
一个
节点
其他兄弟
节点
关闭
本文详细介绍了如何重写系统自动生成的
TreeView
_ToggleNode函数,以实现在
TreeView
中只
展开
一个
节点
,其他兄弟
节点
自动
关闭
的功能。通过调整代码逻辑,实现了
节点
展开
时的样式变化和状态记录。
WPF
TreeView
如何
展开
到某个
节点
本文主要探讨WPF
TreeView
如何
展开
到特定
节点
。
TreeView
的Items集合可能存放
TreeView
Item或数据源,着重讨论常用的绑定数据源情况。介绍了通过ItemsControl.ItemContainerGenerator.ContainerFromItem获取对应
TreeView
Item的方法,以及调用前的状态检查,最后给出示例代码和更简单实现的提示。
QML 树控件
TreeView
默认
展开
所有
节点
的方法和实现
本文介绍了如何在QtQuick项目中使用QML
TreeView
控件实现加载时默认
展开
所有包含子项的
节点
,通过C++与QML的混合编程,利用TreeModel数据结构和信号机制,展示了从数据处理到界面响应的完整过程。
C#
111,129
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章