急,刚接触winform不久碰到的一个问题,大家帮帮忙 我现在要做一个想资源管理器那种,根据左边treeview选中的节点的文件夹,将这个文件夹下的所有文件显示到listview中,然后在双击listview中的文件夹时,又打开这个文件夹并显示在listview中 大家帮帮忙!老板催啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个csdn的资源里面很多,你可以去下载的下载人数最多的那个 很好 基本满足你的要求我就下载了一个 还自己编了出来 根据文件夹结构创建TreeView,同时记录各节点代表的文件夹。处理TreeView的AfterSelect事件,点击TreeView的某个节点后就获取相应文件夹下的文件夹和文件显示在ListView中。处理ListView的DoubleClick事件,与TreeView的AfterSelect事件处理类似。 我是这样的 但是listview中文件夹的双击 我总是得不到完整的路径 然后就会报错 显示目录结构: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 TreeViewControl{ public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { TreeNode root = new TreeNode("本地磁盘 C:",0,1); this.treeView1.Nodes.Add(root); DirectoryInfo dir = new DirectoryInfo("C:\\"); ShowDirectories(dir, root); } //函数递归调用(函数自我调用) private void ShowDirectories(DirectoryInfo dir,TreeNode node) { DirectoryInfo[] subFolders = dir.GetDirectories(); foreach (DirectoryInfo d in subFolders) { try { //this.listBox1.Items.Add(d.Name); TreeNode n = new TreeNode(d.Name, 0, 1); node.Nodes.Add(n); ShowDirectories(d, n); } catch (Exception) { continue; } } } private void treeView1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { this.contextMenuStrip1.Show(this.treeView1,e.X,e.Y);//this.treeView1.SelectedNode = this.treeView1.Nodes[this.treeView1.SelectedNode.Index]; } } }}自己在循环内部添加遍历文件逻辑就可以。至于 ListView 控件显示文件系统,道理就简单了,自己研究吧。 http://www.cnblogs.com/peterzb/archive/2009/06/08/1499131.html 我现在最大的一个问题就是双击listview中的文件或文件我得不到完整的路径 其它的都解决了 TreeNode有一个FullPath属性,如果你的TreeView创建完全正确的话,用这个属性就可以取得正确的路径。 委托中发生的问题 动态创建数据库报错 请问STRING可以存多大的东西 如何根据窗体的字符串生成窗体实例? C#中如何把数据写进缓存中? 求助。。有大量的XML文件需要存到某处然后调用 求助异步通讯的理解 有VS2005连接ORACLE10和SYBASE12.5的专用接口吗?如果没有用什么方式连接这两个数据库呢? CMIC(大象)请进来,一个问题还没有讨论明白,欢迎大家都来抢分!! 如何像OICQ那样实现窗体?在线等待,急!急!!急!!! 弱弱的问下:怎么在后台程序中动态控制iframe的src啊? 【求助】在c/s程序中,每当连入一个客户端,就在treeview中添加一个节点
处理TreeView的AfterSelect事件,点击TreeView的某个节点后就获取相应文件夹下的文件夹和文件显示在ListView中。
处理ListView的DoubleClick事件,与TreeView的AfterSelect事件处理类似。
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;namespace TreeViewControl
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} private void Form2_Load(object sender, EventArgs e)
{
TreeNode root = new TreeNode("本地磁盘 C:",0,1);
this.treeView1.Nodes.Add(root);
DirectoryInfo dir = new DirectoryInfo("C:\\");
ShowDirectories(dir, root);
} //函数递归调用(函数自我调用)
private void ShowDirectories(DirectoryInfo dir,TreeNode node)
{
DirectoryInfo[] subFolders = dir.GetDirectories(); foreach (DirectoryInfo d in subFolders)
{
try
{
//this.listBox1.Items.Add(d.Name);
TreeNode n = new TreeNode(d.Name, 0, 1);
node.Nodes.Add(n); ShowDirectories(d, n);
}
catch (Exception)
{
continue;
}
}
} private void treeView1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
this.contextMenuStrip1.Show(this.treeView1,e.X,e.Y);//this.treeView1.SelectedNode = this.treeView1.Nodes[this.treeView1.SelectedNode.Index];
}
}
}
}自己在循环内部添加遍历文件逻辑就可以。至于 ListView 控件显示文件系统,道理就简单了,自己研究吧。