Visual C# 2010 实现资源管理器
演练:使用设计器创建带有 ListView 和 TreeView 控件的资源管理器样式的界面
Visual Studio 的一个优点是能够在短时间内创建具有专业级外观的 Windows 窗体应用程序。 通常情况下,创建一个带有 ListView 和 TreeView 控件的用户界面 (UI),该界面类似于 Windows 操作系统的 Windows 资源管理器。 Windows 资源管理器显示了用户计算机上的文件和文件夹的层次结构。
注意 |
---|
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。 若要更改设置,请在“工具”菜单上选择“导入和导出设置”。 有关更多信息,请参见 使用设置。 |
创建包含 ListView 和 TreeView 控件的窗体
在“文件”菜单上指向“新建”,再单击“项目”。
在“新建项目”对话框中,请执行以下操作:
在类别中选择“Visual Basic”或“Visual C#”。
在模板列表中,选择“Windows 窗体应用程序”。
单击“确定”。 随即便会创建一个新的 Windows 窗体项目。
向该窗体添加一个 SplitContainer 控件,并将其 Dock 属性设置为 Fill。
向该窗体中添加一个名为 imageList1 的 ImageList,然后使用“属性”窗口按所列顺序添加两个图像:一个文件夹图像和一个文档图像。
向该窗体添加一个名为 treeview1 的 TreeView 控件,将其置于 SplitContainer 控件的左侧。 在 treeView1 的“属性”窗口中,执行以下操作:
将 Dock 属性设置为 Fill。
将 ImageList 属性设置为 imagelist1。
向该窗体中添加一个名为 listView1 的 ListView 控件,将其置于 SplitContainer 控件的右侧。 在 listview1 的“属性”窗口中,执行以下操作:
将 Dock 属性设置为 Fill。
将 View 属性设置为 Details。
单击 Columns 属性中的椭圆 (),以打开 ColumnHeader 集合编辑器。添加三列,并将其 Text 属性分别设置为 Name、Type 和 Last Modified。 单击“确定”关闭对话框。
将 SmallImageList 属性设置为 imageList1。
实现代码以便将节点和子节点填充到 TreeView 中。 将该代码添加到 Form1 类中。
C#VBprivate 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);}}
由于以前的代码使用 System.IO 命名空间,因此需要在窗体顶部添加 using 或 import 语句。
C#VBusing System.IO;
在窗体的构造函数或 Load 事件处理方法中,调用上一步中的设置方法。 将该代码添加到窗体构造函数中。
C#VBpublic Form1(){InitializeComponent();PopulateTreeView();}
处理 treeview1 的 NodeMouseClick 事件,实现代码以便在单击某个节点时,用该节点的内容来填充 listview1。 将该代码添加到 Form1 类中。
C#VBvoid 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);}
如果使用的是 C#,请确保将 NodeMouseClick 事件与其事件处理方法相关联。 将该代码添加到窗体构造函数中。
C#this.treeView1.NodeMouseClick += new TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
现在可以测试窗体,以确保它的行为与预期相同。
测试窗体
按 F5 运行应用程序。
您将看到一个包含 TreeView 控件的拆分窗体,该窗体左侧显示您的项目目录,右侧是分为三列的 ListView 控件。 选择目录节点可以遍历 TreeView,而 ListView 中将填充选定目录的内容。
转载于:https://www.cnblogs.com/txw1958/archive/2012/07/30/2616074.html
Visual C# 2010 实现资源管理器相关推荐
- 扩展Visual Studio 2010服务器资源管理器中的SharePoint结点
Visual Studio 2010最大的卖点就是可扩展性.这样就可以借助.NET社区的力量基于VS构建出许多有用的工具.本文中我们将展示如何扩展VS2010的服务器资源管理器,在其中的SharePo ...
- 在 Visual Studio 的解决方案资源管理器中隐藏一些文件
项目文件中有一些属性几乎是专门为 IDE 而准备的,不过考虑到 .NET 生态的开发者多数都使用 Visual Studio,所以基本上也只有 Visual Studio 对这些特性支持的最全面.(才 ...
- VS2010与.NET4系列 23.Visual Studio 2010 扩展管理器(和新的 VS2010 PowerComman
今天介绍VS2010中的扩展能力改进,以及一个微软发布的"PowerCommands for Visual Studio 2010"扩展. VS2010中的扩展能力 VS2010比 ...
- Visual Stdio的解决方案资源管理器位置调整
其实这是个极为简单的操作,可是我最初真的不会弄,哈哈,自嘲一下. 我刚装了vs2013,这个解决方案资源管理器默认靠右了,习惯了靠左,那么咋搞呢? 方法有三种: 方法一:窗口-->重置窗口布局 ...
- Visual Studio 2015 解决方案资源管理器
位置 解决方案资源管理器 窗口默认位于右上角. 它与另一个窗口 类视图 位于相同的位置. 打开 类视图 可以在菜单栏中选择 视图 | 类视图 即可打开该窗口.如下图: 解决方案管理器 窗口显示了组成 ...
- VS2010中文旗舰版下载 Visual Studio 2010 Ultimate
Visual Studio 是微软公司推出的开发环境.是目前最流行的 Windows 平台应用程序开发环境.目前已正式发布的是 9.0 版本,也就是 Visual Studio 2008,而在2008 ...
- 用资源管理器右键编译 Visual Studio 解决方案文件
每次改动 VC 工程之后都要重新编译,每次 VS 又会生成调试数据库文件,很费时间,于是研究了一下如何在资源管理器中直接编译,还真发现了解决办法. 以下是适用 Visual Studio 2008 的 ...
- 【转】Visual Studio团队资源管理器 Git 源码管理工具简单入门
1.1 环境 Visual Studio + GitLab (其他版本同理) 1.2 Git操作过程图解 1.3 常见名词解释 拉取(Pull):将远程版本库合并到本地版本库,相当于(Fetch+Me ...
- Visual Studio 2012资源管理器里单击打开改为双击打开文件
Visual Studio 2012资源管理器里,单击打开文件改为双击打开文件,如图:
最新文章
- 内核编译配置选项含义
- java解析string_java读取文件内容为string字符串的方法
- 排行榜上用C++写局域网聊天程序
- 2018年的最后一篇随笔
- JVM Specification 9th Edition (1) Cover
- 谨防欺诈,Facebook 禁止加密货币和 ICO 广告
- 源码解析:修改mysql密码出现错误1045
- asp:Button 事件,点击事件 html Button runat=sever
- Python CGI编程
- vector,list,deque容器的迭代器简单介绍
- cygwin下载可以用的服务器
- 标准ASCII编码表
- eclipse下载以及下载web插件速度慢的解决方法
- arcgis 批量计算几何_GIS中的计算几何
- ps cc2019 安装教程
- “卖给我一支笔”:乔布斯会如何应对这个经典问题?
- 922175-70-0,Galacto-RGD,RGDfK(SAA),νβ3表达成像示踪剂
- 2022秋季C语言专题实验07
- FPGA设计实战演练(高级技巧篇)
- Cross Domain Knowledge Transfer for Person Re-identification笔记
热门文章
- Algs4-1.5.4给出id[]和sz[]的内容与次数
- 阿里云为澳门装上“城市大脑”
- Mac下php 5升级到php 7的步骤详解
- Ansible之八:Playbook循环
- HDU 1853 MCMF
- Android应用安全开发之浅谈加密算法的坑
- java重复造轮子系列篇-----时间date
- ngnix+keepalived 实现N主高可用负载均衡web群集
- TongJI Online Judge预赛(2): LOVE LETTER
- 跳出误区:Java程序员进阶架构师真的没你想象的那么简单......