描述C#ListView控件

C#的功能十分强大,用它可以轻松地做出属于自己的文件浏览器。下面简单地介绍一下文件浏览器的大致实现过程。其中涉及的有关这些控件的具体用法可参见C#的联机帮助。

澄江网站建设公司创新互联建站,澄江网站设计制作,有大型网站制作公司丰富经验。已为澄江上千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的澄江做网站的公司定做!

你需要用到几个控件:
◆C# TreeView控件(用于显示显示目录树);
◆C# ListView控件(用于显示文件和目录列表);
◆C# Splitter控件(用于允许用户调整TreeView和ListView的大小);

其它的如:MainMenu,ToolBar,StatusBar,ImageList等等就看你的实际需要了。

首先,新建一个C#项目(Windows应用程序),命名为MyFileView,将窗口命名为mainForm,调整主窗口大小(Size)。添加MainMenu,ToolBar,StatusBar,ImageList等控件。

然后,添加TreeView控件,命名为treeView,Dock属性设为Left,再添加Splitter控件,同样将Dock属性设为Left。最后添加C# ListView控件,命名为listView,Dock属性设为Fill。

界面做好了,那么怎样才能在这个界面里显示文件夹和文件呢?这需要我们添加代码来实现。

首先引用以下名字空间:

 
 
 
  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.Data;
  7. using System.IO ;
  8. using System .Runtime .InteropServices ;
  9. 在mainForm_Load事件中添加以下代码,用于在treeView控件中显示目录树:
  10. private void mainForm_Load(object sender, System.EventArgs e)
  11. //获取逻辑驱动器
  12. string[] LogicDrives=System.IO .Directory .GetLogicalDrives();
  13. TreeNode[] cRoot =new TreeNode[LogicDrives.Length];
  14. for (int i=0;i< LogicDrives.Length ;i++)
  15. {
  16. TreeNode drivesNode=new TreeNode(LogicDrives[i]);
  17. treeView.Nodes .Add (drivesNode);
  18. if (LogicDrives[i]!="A:\\" && LogicDrives[i]!="B:\\" )
  19. getSubNode(drivesNode,true);
  20. }
  21. }

其中,getSubNode为一方法,用于获取子目录,以创建目录树节点,参数:PathName为获取的子目录在此节点下创建子节点,参数isEnd:结束标志,true则结束。

 
 
 
  1. private void getSubNode(TreeNode PathName,bool isEnd)
  2. {
  3. if(!isEnd)
  4. return; //exit this
  5. TreeNode curNode;
  6. DirectoryInfo[] subDir;
  7. DirectoryInfo curDir=new DirectoryInfo (PathName.FullPath);
  8. try
  9. {
  10. subDir=curDir.GetDirectories();
  11. }
  12. catch{}
  13. foreach(DirectoryInfo d in subDir)
  14. {
  15. curNode=new TreeNode(d.Name);
  16. PathName.Nodes .Add (curNode);
  17. getSubNode(curNode,false);
  18. }
  19. }

当鼠标单击目录节点左边的+号时,节点将展开,此时,应在AfterExpand事件中加入以下代码,以获取此目录下的子目录节点:

 
 
 
  1. private void treeView_AfterExpand
    (object sender, System.Windows.Forms.TreeViewEventArgs e)
  2. {
  3. try
  4. {
  5. foreach(TreeNode tn in e.Node .Nodes )
  6. {
  7. if (!tn.IsExpanded)
  8. getSubNode(tn,true);
  9. }
  10. }
  11. catch{;}
  12. }

当鼠标单击选中目录节点时,右边的C# listView控件应显示此目录下的文件和目录,代码如下:

 
 
 
  1. private void treeView_AfterSelect
    (object sender,System.Windows.Forms.TreeViewEventArgs e)
  2. {
  3. listView.Items.Clear();
  4. DirectoryInfo selDir=new DirectoryInfo(e.Node.FullPath );
  5. DirectoryInfo[] listDir;
  6. FileInfo[] listFile;
  7. try
  8. {
  9. listDir=selDir.GetDirectories();
  10. listFile=selDir.GetFiles();
  11. }
  12. catch{}
  13. foreach (DirectoryInfo d in listDir)
  14. listView.Items .Add (d.Name,6);
  15. foreach (FileInfo d in listFile)
  16. listView.Items .Add (d.Name);
  17. }

至此,一个简单的文件浏览器就做成了,当然,它还很初级,甚至不能用它打开一个文件,加另外,它也不能显示文件和目录的图标,没有进行错误处理,没有进行安全控制……它能给你的只是一个思路。

文章名称:描述C#ListView控件
网页地址:http://www.mswzjz.cn/qtweb/news19/235319.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能