制作一个类似于windows资源管理器的目录结构 开发一个程序,要求使用TreeView控件制作一个类似于windows资源管理器的目录结构,并且在该目录结构中选择目录,显示在listview控件中,请高手指点!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MSDN里面TreeView例子就是你要的:TreeView control [Windows Forms], ListView controls used with (1)用DirectoryInfo类一层一层地遍历你的文件目录结构,作为节点添加到Treeview中。(2)当在Treeview中选中某个项时,treeView1.SelectedNode.Name添加到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 Test26{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { TreeNode CountNode = new TreeNode("我的电脑");//初始化TreeView控件添加总结点 TreeViewFile.Nodes.Add(CountNode); ListViewShow(CountNode); //初始化ListView控件 } private void ListViewShow(TreeNode NodeDir)//初始化ListView控件,把TrreView控 { ListViewFile.Clear(); try { if (NodeDir.Parent == null)// { foreach (string DrvName in Directory.GetLogicalDrives()) { ListViewItem ItemList = new ListViewItem(DrvName); ListViewFile.Items.Add(ItemList);//添加进来 } } else//如果当前TreeView的父结点不为空,把点击的结点,做为一个目录文件的总结点 { foreach (string DirName in Directory.GetDirectories((string)NodeDir.Tag))//编历当前分区或文件夹所有目录 { ListViewItem ItemList = new ListViewItem(DirName); ListViewFile.Items.Add(ItemList); } foreach (string FileName in Directory.GetFiles((string)NodeDir.Tag))//编历当前分区或文件夹所有目录的文件 { ListViewItem ItemList = new ListViewItem(FileName); ListViewFile.Items.Add(ItemList); }// } } catch { } }// private void ListViewShow(string DirFileName)//获取当有文件夹内的文件和目录 { ListViewFile.Clear(); try { foreach (string DirName in Directory.GetDirectories(DirFileName)) { ListViewItem ItemList = new ListViewItem(DirName); ListViewFile.Items.Add(ItemList); } foreach (string FileName in Directory.GetFiles(DirFileName)) { ListViewItem ItemList = new ListViewItem(FileName); ListViewFile.Items.Add(ItemList); } } catch { } } private void TreeViewShow(TreeNode NodeDir)//初始化TreeView控件 { try { if (NodeDir.Nodes.Count == 0) { if (NodeDir.Parent == null)//如果结点为空显示硬盘分区 { foreach (string DrvName in Directory.GetLogicalDrives()) { TreeNode aNode = new TreeNode(DrvName); aNode.Tag = DrvName; NodeDir.Nodes.Add(aNode); } }// end else// 不为空,显示分区下文件夹 { foreach (string DirName in Directory.GetDirectories((string)NodeDir.Tag)) { TreeNode aNode = new TreeNode(DirName); aNode.Tag = DirName; NodeDir.Nodes.Add(aNode); } } } } catch { } } private void TreeViewFile_AfterSelect(object sender, TreeViewEventArgs e) { ListViewShow(e.Node); TreeViewShow(e.Node); } private void ListViewFile_DoubleClick(object sender, EventArgs e) { foreach (int ListIndex in ListViewFile.SelectedIndices) { ListViewShow(ListViewFile.Items[ListIndex].Text); } } }} Properties中Settings.settings中范围属性的值 用户和应用程序的区别和存储位置 问一个聊天软件关于内外网的问题,求思路 200628C#-close功能 请高手不吝赐教 思归大哥,谢谢了提供了语法分析源代码示例的网址 c#中如何在owc生成的柱状图上方显示数据或下方显示数据表 希望redbb能发一份OA源代码给我,多谢!! 请高手指点,如何用C#实现文件的上传,注意容量大于4M,请文怎么实现,谢谢 C# BUtton怎么播放某网页的声音? C# 如何把文件夹d:\p\1\a移动到d:\j\c文件夹下 打不开项目文件
TreeView control [Windows Forms], ListView controls used with
(2)当在Treeview中选中某个项时,treeView1.SelectedNode.Name添加到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 Test26
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
TreeNode CountNode = new TreeNode("我的电脑");//初始化TreeView控件添加总结点
TreeViewFile.Nodes.Add(CountNode);
ListViewShow(CountNode); //初始化ListView控件
}
private void ListViewShow(TreeNode NodeDir)//初始化ListView控件,把TrreView控 {
ListViewFile.Clear(); try
{
if (NodeDir.Parent == null)//
{
foreach (string DrvName in Directory.GetLogicalDrives()) {
ListViewItem ItemList = new ListViewItem(DrvName);
ListViewFile.Items.Add(ItemList);//添加进来
}
}
else//如果当前TreeView的父结点不为空,把点击的结点,做为一个目录文件的总结点
{
foreach (string DirName in Directory.GetDirectories((string)NodeDir.Tag))//编历当前分区或文件夹所有目录
{
ListViewItem ItemList = new ListViewItem(DirName);
ListViewFile.Items.Add(ItemList);
}
foreach (string FileName in Directory.GetFiles((string)NodeDir.Tag))//编历当前分区或文件夹所有目录的文件
{
ListViewItem ItemList = new ListViewItem(FileName);
ListViewFile.Items.Add(ItemList);
}//
}
}
catch { }
}//
private void ListViewShow(string DirFileName)//获取当有文件夹内的文件和目录
{
ListViewFile.Clear();
try
{
foreach (string DirName in Directory.GetDirectories(DirFileName))
{
ListViewItem ItemList = new ListViewItem(DirName);
ListViewFile.Items.Add(ItemList);
}
foreach (string FileName in Directory.GetFiles(DirFileName))
{
ListViewItem ItemList = new ListViewItem(FileName);
ListViewFile.Items.Add(ItemList);
}
}
catch { }
} private void TreeViewShow(TreeNode NodeDir)//初始化TreeView控件
{
try
{
if (NodeDir.Nodes.Count == 0)
{
if (NodeDir.Parent == null)//如果结点为空显示硬盘分区
{
foreach (string DrvName in Directory.GetLogicalDrives())
{
TreeNode aNode = new TreeNode(DrvName);
aNode.Tag = DrvName;
NodeDir.Nodes.Add(aNode);
}
}// end
else// 不为空,显示分区下文件夹
{
foreach (string DirName in Directory.GetDirectories((string)NodeDir.Tag))
{
TreeNode aNode = new TreeNode(DirName);
aNode.Tag = DirName;
NodeDir.Nodes.Add(aNode);
}
}
}
}
catch { }
} private void TreeViewFile_AfterSelect(object sender, TreeViewEventArgs e)
{
ListViewShow(e.Node);
TreeViewShow(e.Node);
} private void ListViewFile_DoubleClick(object sender, EventArgs e)
{
foreach (int ListIndex in ListViewFile.SelectedIndices)
{
ListViewShow(ListViewFile.Items[ListIndex].Text);
}
}
}
}