社区
C#
帖子详情
求TreeView绑定任意路径的方法
cosmicking
2006-09-12 09:01:26
我想用TreeView来绑定任意路径,但不知道如何加载子节点,循环读出来的目录和文件都显示在根节点中。忘高手指点迷津!
...全文
355
10
打赏
收藏
求TreeView绑定任意路径的方法
我想用TreeView来绑定任意路径,但不知道如何加载子节点,循环读出来的目录和文件都显示在根节点中。忘高手指点迷津!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cosmicking
2006-09-13
打赏
举报
回复
解决啦,我在treeView的beforeExpand事件里写的,判断当前节点是否是目录,然后继续向下展开!
lovvver
2006-09-12
打赏
举报
回复
不会慢,关键看你的目录下的文件夹以及文件有多少,如果上万的话,那肯定会慢了,就是你手动在资源管理器中打开都会比较慢。
cosmicking
2006-09-12
打赏
举报
回复
用递归的话,程序运行起来会不会很慢啊?
cosmicking
2006-09-12
打赏
举报
回复
geoffe(),你用的2003还是2005。我怎么调不过去呢!有些属性我的2003里没有!
GXY2005
2006-09-12
打赏
举报
回复
递归算法
geoffe
2006-09-12
打赏
举报
回复
比如绑定我的电脑
那你用一个循环就可以了
根极点是硬盘,子节点是相应的文件夹
private void FillTree()
{
this.treeview1.Nodes.Clear();
TreeNode RootNode = new TreeNode(openDialog1.fileName)
TreeNode DriveNode;
string[] strDrivers = Environment.GetLogicalDrives();
foreach (string DriverName in strDrivers)
{
DriveNode = new TreeNode(DriverName);
DriveNode.Name = "" + DriverName;
DriveNode.Tag = false;
if (CheckISSubFolder(DriverName))
{
TreeNode tmpnode = new TreeNode("tmp");
DriveNode.Nodes.Add(tmpnode);
}
RootNode.Nodes.Add(DriveNode);
}
if (RootNode.Nodes.Count > 0)
RootNode.Expand();
this.sysTreeView.Nodes.Add(RootNode);
}
private bool CheckISSubFolder(string Path)
{
DirectoryInfo dir = new DirectoryInfo(Path);
if (!dir.Exists)
{
return false;
}
else
{
DirectoryInfo[] subDirs = dir.GetDirectories();
int i = 0;
foreach (DirectoryInfo subDir in subDirs)
{
if ((subDir.Attributes & FileAttributes.Hidden) != 0)
{
continue;
}
else
{
if (++i > 0)
return true;
}
}
return false;
}
}
private void GetSubDirectory(TreeNode ParentNode, string Path)
{
try
{
DirectoryInfo dir = new DirectoryInfo(Path);
DirectoryInfo[] subDirs = dir.GetDirectories();
TreeNode SubNode;
ParentNode.Nodes.RemoveAt(0);
foreach (DirectoryInfo subDir in subDirs)
{
if ((subDir.Attributes & FileAttributes.Hidden) != 0)
continue;
SubNode = new TreeNode(subDir.Name);
SubNode.Name = subDir.FullName;
SubNode.Tag = false;
if (CheckISSubFolder(subDir.FullName))
{
TreeNode tmpnode = new TreeNode("tmp");
SubNode.Nodes.Add(tmpnode);
}
ParentNode.ImageIndex = 1;
ParentNode.SelectedImageIndex = 0;
ParentNode.Nodes.Add(SubNode);
}
}
catch { }
}
cosmicking
2006-09-12
打赏
举报
回复
自己再顶一下!
cosmicking
2006-09-12
打赏
举报
回复
我会搜索所有文件,可不知道怎么把它按文件夹的路径加到treeView里,生成树状结构!
cosmicking
2006-09-12
打赏
举报
回复
我是在winform下用的,有没有简单点的,给我点算法的提示就行!
fds2003
2006-09-12
打赏
举报
回复
http://www.cnblogs.com/Bolik/archive/2006/09/11/501141.html
Asp.net
TreeView
控件使用总结
本文详细介绍了ASP.NET中
TreeView
控件的应用场景及其三种填充数据的
方法
:静态数据、数据
绑定
及动态数据填充。着重讲解了动态数据填充的实现过程,并提供了一段示例代码来演示如何动态更新树形结构。
TreeView
IE Web 控件的使用
本文介绍ASP.NET中的
TreeView
控件,包括其安装、基本使用
方法
及如何通过编程动态填充数据。
C# WinForm实战:ContextMenuStrip(右键菜单)的两种高效创建与动态
绑定
本文系统讲解C# WinForm中ContextMenuStrip控件的两种核心创建方式:可视化拖拽设计与动态代码生成,并涵盖控件
绑定
、菜单项状态管理、内存泄漏防范及多语言支持等关键技术点。重点突出其在DataGridView、
TreeView
等控件上的右键交互实践,强调运行时动态数据
绑定
、Opening事件处理和资源释放机制。
别再硬写XAML了!用Blend for Visual Studio 2022快速设计WPF
TreeView
样式
本文介绍如何利用Blend for Visual Studio 2022可视化设计WPF
TreeView
样式,涵盖模板重构、交互效果录制、资源复用及动态主题切换。重点突出其实时编辑、视觉树解析和状态录制三大能力,显著降低XAML编码量与调试成本,提升样式开发效率与可维护性。
C#
111,131
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章