ListView使用总结2

只用于简单总结,见代码

using System;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace Sample

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

            ListViewSet();

            GetFolderTreeView(@"c:/");

        }

        /// <summary>    

        /// ListView 设置  

        /// </summary>   

        private void ListViewSet() 

        {          

            //ListView显示方式   

            listViewControl.View = View.Details;

            //项目的双击事件

            listViewControl.ItemActivate += new EventHandler(listViewControl_ItemActivate);      

            

            //返回按钮的事件     

            this.btnRevert.Click += new EventHandler(btnRevert_Click);

        }

        /// <summary>

        /// 返回上一级

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void btnRevert_Click(object sender, EventArgs e)

        {

            /*      

             * 原理:得到路径,然后截取最后一个"/"之前的路径,并将其路径赋给你路径变量。 

             * 再次单击返回时,截取此变量中最后一个"/"之前的路径。      

             * 当获得不到"/"的位置时说明到达顶层。     

             * */

            int iPosition = sfileName.LastIndexOf("//") + 1;

            if (iPosition > 0)

            {

                string sA = sfileName.Substring(0, iPosition);

                GetFolderTreeView(sA);

                sfileName = sfileName.Substring(0, iPosition - 1);

            }

            else

                MessageBox.Show("The topest Layer.");

        }

        /// <summary>   

        /// 得到目录中的内容  

        /// </summary>   

        private void GetFolderTreeView(string asPath)  

        {      

            listViewControl.Clear();      

            

            #region 增加Item的标题,共有三个列    

            //创建标题,共三列     

            listViewControl.Columns.Add("文件名");     

            listViewControl.Columns.Add("大小");      

            listViewControl.Columns.Add("创建日期");    

            #endregion

        //开始更新       

            listViewControl.BeginUpdate();

        DirectoryInfo diInfo = new DirectoryInfo(asPath);       

            DirectoryInfo[] dirs = diInfo.GetDirectories();     

            FileInfo[] fiInfo = diInfo.GetFiles();

        

            ListViewItem lviItem;            

            ListViewItem.ListViewSubItem lviSubItem;

        

            foreach (DirectoryInfo di in dirs)      

            {        

                lviItem = new ListViewItem();    

                lviItem.Text = di.Name;          

                

                //得到文件夹的路径             

                lviItem.Tag = di.FullName;

            lviSubItem = new ListViewItem.ListViewSubItem();        

                

                //文件夹没有大小    

                lviSubItem.Text = "";       

                lviItem.SubItems.Add(lviSubItem);

            lviSubItem = new ListViewItem.ListViewSubItem();      

                lviSubItem.Text = di.CreationTime.ToString();        

                lviItem.SubItems.Add(lviSubItem);             

                listViewControl.Items.Add(lviItem);   

            }

           

            foreach (FileInfo fi in fiInfo)   

            {           

                lviItem = new ListViewItem();       

                lviItem.Text = fi.Name;

            lviSubItem = new ListViewItem.ListViewSubItem();       

                lviSubItem.Text = fi.Length.ToString();     

                lviItem.SubItems.Add(lviSubItem);

            lviSubItem = new ListViewItem.ListViewSubItem();   

                lviSubItem.Text = fi.CreationTime.ToString();        

                lviItem.SubItems.Add(lviSubItem);

            listViewControl.Items.Add(lviItem);        

            }      

            

            //结束更新  

            listViewControl.EndUpdate(); 

        }

        /// <summary>     

        /// 定义变量存放路径       

        /// </summary>   

        string sfileName = "";

        /// <summary>     

        /// 项目的双击事件  

        /// </summary>     

        /// <param name="sender"></param>   

        /// <param name="e"></param>

        private void listViewControl_ItemActivate(object sender, EventArgs e)

        {

            ListView lvControl = (ListView)sender;

            if (lvControl.SelectedItems[0].Tag == null)

                return;

            sfileName = lvControl.SelectedItems[0].Tag.ToString();

            if (lvControl.SelectedItems[0].Tag.ToString() == ""

            {

                try 

                { 

                    System.Diagnostics.Process.Start(sfileName); 

                }

                catch

                {

                    return

                }

            }

            else

            {

                GetFolderTreeView(sfileName);

            }

        }

    }

}

结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值