社区
C#
帖子详情
求TreeView绑定任意路径的方法
cosmicking
2006-09-12 09:01:26
我想用TreeView来绑定任意路径,但不知道如何加载子节点,循环读出来的目录和文件都显示在根节点中。忘高手指点迷津!
...全文
340
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
无限级树形菜单动态
绑定
树(sql2005数据库+vs)
- 无限级树形菜单是一种数据结构,允许节点具有
任意
数量的子节点,可以无限层级地展开。 - 在前端展示时,通常使用HTML和JavaScript(如jQuery或原生JS)实现动态加载和交互。 2. **SQL Server 2005数据库**: -...
WPF_开发教程(_中文版).
- **复合控件**:如TabControl、
TreeView
等,可以用来构建更为复杂的用户界面。 - **自定义控件**:通过继承现有控件或者从头开始创建新控件,可以满足特定的应用需
求
。 #### 2. 使用XAML 创建按钮 按钮是WPF中最...
一款非常好的WPF编程宝典2010 源代码
18.3.1 使用数据
绑定
的
TreeView
控件 511 18.3.2 将DataSet对象
绑定
到树视图 514 18.3.3 即时节点创建 515 18.4 菜单 518 18.4.1 Menu类 518 18.4.2 菜单项 519 18.4.3 ContextMenu类 520 18.4.4 菜单分隔...
明日科技C#开发入门及项目实战
实例059 通过定义
方法
求
一个数的平方 实例060 使用重载
方法
实现不同类型数据的计算 实例061 使用属性存储用户编号和姓名 实例062 使用索引器 实例063 通过类继承计算梯形面积 实例064 封装类实现一个简单的计算器 ...
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章