listview中分列展示数据

listview控件就像windows资源管理器右边的内容视图,有大图标、小图标、列表、平铺、详细信息几种展示方式,我这次做的需要看目录下的文件夹和文件以及更新时间,另外再加个文件类型和大小,所以就使用详细信息的方式,具体做法如下:

1 在listview的属性窗口的View属性选择Details

listview中分列展示数据_第1张图片

2 Colomns属性中,添加需要的几列,并将Text改成要展示的列名字

listview中分列展示数据_第2张图片

3 代码中添加方法

        //获取文件夹和文件列表
        public void GetDirectorysAndFiles(int index)
        {
            string path = datatable_folders.Rows[index]["Folder"].ToString();
            string protocol = datatable_folders.Rows[index]["Protocol"].ToString();
            string username = datatable_folders.Rows[index]["Username"].ToString();
            string password = datatable_folders.Rows[index]["Password"].ToString();
            if (protocol == "local")
            {
                DirectoryInfo dirs = new DirectoryInfo(path);
                foreach (DirectoryInfo dir in dirs.GetDirectories())
                {
                    ListViewItem item = new ListViewItem();
                    item.Text = dir.Name;
                    //item.ImageIndex = 
                    item.SubItems.Add(dir.LastWriteTime.ToString("yyyy-MM-dd HH:mm"));
                    item.SubItems.Add("文件夹");
                    item.SubItems.Add("");
                    listView1.Items.Add(item);
                }
                foreach (FileInfo file in dirs.GetFiles())
                {
                    ListViewItem item = new ListViewItem();
                    item.Text = file.Name;
                    item.SubItems.Add(file.LastWriteTime.ToString("yyyy-MM-dd HH:mm"));
                    item.SubItems.Add(file.Extension);
                    item.SubItems.Add(file.Length.ToString());
                    listView1.Items.Add(item);
                }
            }
        }
4 在对应的事件调用此方法,我的是鼠标双击listbox中的某个Item

        //listbox双击事件
        private void listBox_folders_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            int index = listBox_folders.IndexFromPoint(e.Location);
            if (index != System.Windows.Forms.ListBox.NoMatches)
            {
                GetDirectorysAndFiles(index);
            }
        }


listview的第一列可以展示图片加文字,像文件夹和文件的图标,这个可以通过文件的后缀名去注册表中取对应的图标,具体比较麻烦,我暂时先不做了,对我无关紧要的。后面的每列都是SubItem,使用SubItems.Add方法添加,注意顺序对应就好了。

你可能感兴趣的:(C#)