Visual Studio 2010
 
 
评价此主题
 

 

Windows 资源管理器显示了用户计算机上的文件和文件夹的层次结构。

注意

使用设置

创建包含 ListView 和 TreeView 控件的窗体

  1. “项目”

  2. “新建项目”对话框中,请执行以下操作:

    1. “Visual C#”

    2. “Windows 窗体应用程序”

  3. 随即便会创建一个新的 Windows 窗体项目。

  4. Fill

  5. ImageList,然后使用“属性”窗口按所列顺序添加两个图像:一个文件夹图像和一个文档图像。

  6.  的“属性”窗口中,执行以下操作:

    1. Fill

    2. imagelist1

  7.  的“属性”窗口中,执行以下操作:

    1. Fill

    2. Details

    3. “确定”关闭对话框。

    4. imageList1

  8.  类中。

     
            private void PopulateTreeView()
            {
                TreeNode rootNode;
    			
    			DirectoryInfo info = new DirectoryInfo(@"../..");
                if (info.Exists)
                {
                    rootNode = new TreeNode(info.Name);
                    rootNode.Tag = info;
                    GetDirectories(info.GetDirectories(), rootNode);
                    treeView1.Nodes.Add(rootNode);
                }
            }
    
            private void GetDirectories(DirectoryInfo[] subDirs, 
    			TreeNode nodeToAddTo)
            {
                TreeNode aNode;
                DirectoryInfo[] subSubDirs;
                foreach (DirectoryInfo subDir in subDirs)
                {
                    aNode = new TreeNode(subDir.Name, 0, 0);
                    aNode.Tag = subDir;
    				aNode.ImageKey = "folder";
                    subSubDirs = subDir.GetDirectories();
                    if (subSubDirs.Length != 0)
                    {
                        GetDirectories(subSubDirs, aNode);
                    }
                    nodeToAddTo.Nodes.Add(aNode);
                }
            }
    
    
    
  9. 由于以前的代码使用 System.IO 命名空间,因此需要在窗体顶部添加 using 或 import 语句。

     
    using System.IO;
    
    
    
  10. 将该代码添加到窗体构造函数中。

     
    		public Form1()
    		{
    			InitializeComponent();
    			PopulateTreeView();
    		}
    
    
    
  11.  类中。

     
    		void treeView1_NodeMouseClick(object sender,
    			TreeNodeMouseClickEventArgs e) 
    		{
    			TreeNode newSelected = e.Node;
    			listView1.Items.Clear();
    			DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag;
    			ListViewItem.ListViewSubItem[] subItems;
    			ListViewItem item = null;
    
    			foreach (DirectoryInfo dir in nodeDirInfo.GetDirectories())
    			{
    				item = new ListViewItem(dir.Name, 0);
    				subItems = new ListViewItem.ListViewSubItem[]
                        {new ListViewItem.ListViewSubItem(item, "Directory"), 
                         new ListViewItem.ListViewSubItem(item, 
    						dir.LastAccessTime.ToShortDateString())};
    				item.SubItems.AddRange(subItems);
    				listView1.Items.Add(item);
    			}
    			foreach (FileInfo file in nodeDirInfo.GetFiles())
    			{
    				item = new ListViewItem(file.Name, 1);
    				subItems = new ListViewItem.ListViewSubItem[]
                        { new ListViewItem.ListViewSubItem(item, "File"), 
                         new ListViewItem.ListViewSubItem(item, 
    						file.LastAccessTime.ToShortDateString())};
    
    				item.SubItems.AddRange(subItems);
    				listView1.Items.Add(item);
    			}
    
    			listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
    		}
    
    
    

    将该代码添加到窗体构造函数中。

     
    			this.treeView1.NodeMouseClick += 
    				new TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
    
    
    

现在可以测试窗体,以确保它的行为与预期相同。

测试窗体

  • 按 F5 运行应用程序。

     中将填充选定目录的内容。

相关文章:

  • 2022-12-23
  • 2021-05-20
  • 2021-09-08
  • 2021-08-21
  • 2022-01-22
  • 2022-12-23
  • 2021-05-01
  • 2021-12-13
猜你喜欢
  • 2022-12-23
  • 2021-10-07
  • 2022-01-13
  • 2021-07-25
  • 2022-12-23
  • 2021-11-16
相关资源
相似解决方案