| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 841 人关注过本帖
标题:[求助]如何提高TreeView的运行效率
只看楼主 加入收藏
uid5352
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-17
收藏
 问题点数:0 回复次数:4 
[求助]如何提高TreeView的运行效率

我写的一个打开目录的代码,就是运行太慢了,请高手指教一下
解决方案名为:MyFileBrowser
下面是代码的内容:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace MyFileBrowser
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
string[] drives = Directory.GetLogicalDrives();
int count = drives.Length;
TreeNode[] tn = new TreeNode[count];
DirectoryInfo di;
string driveName;
for (int i = 0; i < count; i++)
{
try
{
di = new DirectoryInfo(drives[i]);
driveName = di.Name;
tn[i] = new TreeNode(driveName, getNodes(drives[i]));
}
catch (Exception)
{
di = new DirectoryInfo(drives[i]);
driveName = di.Name;
tn[i] = new TreeNode(driveName);
}
}
TreeNode tr = new TreeNode("我的电脑", tn);
treeView1.Nodes.Add(tr);
//treeView1.ExpandAll();
}

private TreeNode[] getNodes(string path)
{
string[] paths = Directory.GetDirectories(path);
int count = paths.Length;
TreeNode[] tn = new TreeNode[count];
DirectoryInfo di;
string pathName;
if (count != 0)
{
for (int i = 0; i < count; i++)
{
try
{
di = new DirectoryInfo(paths[i]);
pathName = di.Name;
tn[i] = new TreeNode(pathName, getNodes(paths[i]));
}
catch (Exception)
{
di = new DirectoryInfo(paths[i]);
pathName = di.Name;
tn[i] = new TreeNode(pathName);
}
}
}
return tn;
}

private void button1_Click(object sender, EventArgs e)
{
string str = treeView1.SelectedNode.FullPath;
str = str.Replace("我的电脑\\", "");
str = str.Replace("\\\\", "\\");
MessageBox.Show(str, "选择的目录");
treeView1.Select();
}

private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}

搜索更多相关主题的帖子: TreeView 效率 运行 
2006-12-21 02:14
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
这是因为你先整盘遍历了一遍所导致的,其实就算是Windows自带的Explorer,也都是只给出所有盘符

然后再点击的时候再展开。
2006-12-21 10:49
uid5352
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-17
收藏
得分:0 
但是TreeView没有这个事件啊,怎么样写呢,还望指教,多写了先
2006-12-23 00:42
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
一层一层地取,你点击哪一个节,再加载那个节.

飘过~~
2006-12-23 00:53
uid5352
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-17
收藏
得分:0 

多谢赐教

2006-12-25 00:14
快速回复:[求助]如何提高TreeView的运行效率
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040374 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved