解决方案 »

  1.   

    listview显示图片需要和imagelist一起使用的
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;namespace ListView
    {
        public partial class Form1 : Form
        {        private System.Collections.Specialized.StringCollection folderCol;
            private void CreateHeadersAndFillListView()
            {
                ColumnHeader colHead;
                colHead = new ColumnHeader();
                colHead.Text = "Filename";
                this.lvFilesAndFolers.Columns.Add(colHead);            colHead = new ColumnHeader();
                colHead.Text = "Size";
                this.lvFilesAndFolers.Columns.Add(colHead);            colHead = new ColumnHeader();
                colHead.Text = "Last accessed";
                this.lvFilesAndFolers.Columns.Add(colHead);        }
            private void PaintListView(string root)
            {
                try
                {
                    ListViewItem lvi;//listview控件项
                    ListViewItem.ListViewSubItem lvsi;//listview控件子项
                    if (root.CompareTo("") == 0)
                    {
                        return;
                    }
                    System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(root);
                    DirectoryInfo[] dirs = dir.GetDirectories();
                    FileInfo[] files = dir.GetFiles();
                    this.lvFilesAndFolers.Items.Clear();                this.lblCurrentPath.Text = root;                this.lvFilesAndFolers.BeginUpdate();                foreach (DirectoryInfo di in dirs)
                    {
                        lvi = new ListViewItem();
                        lvi.Text = di.Name;
                        lvi.ImageIndex = 0;
                        lvi.Tag = di.FullName;
                        lvsi = new ListViewItem.ListViewSubItem();
                        lvsi.Text = "";
                        lvi.SubItems.Add(lvsi);                    lvsi = new ListViewItem.ListViewSubItem();
                        lvsi.Text = di.LastAccessTime.ToString();
                        lvi.SubItems.Add(lvsi);
                        this.lvFilesAndFolers.Items.Add(lvi);
                    }
                    foreach (FileInfo fi in files)
                    {
                        lvi = new ListViewItem();
                        lvi.Text = fi.Name;
                        lvi.ImageIndex = 1;
                        lvi.Tag = fi.FullName;
                        lvsi = new ListViewItem.ListViewSubItem();
                        lvsi.Text = fi.Length.ToString();
                        lvi.SubItems.Add(lvsi);
                        lvsi = new ListViewItem.ListViewSubItem();
                        lvsi.Text = fi.LastAccessTime.ToString();
                        lvi.SubItems.Add(lvsi);                    this.lvFilesAndFolers.Items.Add(lvi);
                    }                this.lvFilesAndFolers.EndUpdate();            }
                catch (System.Exception err)
                {
                    MessageBox.Show("Error:" + err.Message);
                }
            }
            public Form1()
            {
                InitializeComponent();
                folderCol = new System.Collections.Specialized.StringCollection();
                CreateHeadersAndFillListView();
                PaintListView(@"C:\");
                folderCol.Add(@"C:\");        }        private void lvFilesAndFolers_ItemActivate(object sender, EventArgs e)
            {
                System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;
                string filename = lw.SelectedItems[0].Tag.ToString();
                if (lw.SelectedItems[0].ImageIndex != 0)
                {                try
                    {
                        System.Diagnostics.Process.Start(filename);
                    }
                    catch
                    {
                        return;
                    }
                }
                else
                {
                    PaintListView(filename);
                    folderCol.Add(filename);
                }        }        private void btnBack_Click(object sender, EventArgs e)
            {
                if (folderCol.Count > 1)
                {
                    PaintListView(folderCol[folderCol.Count - 2].ToString());
                    folderCol.RemoveAt(folderCol.Count - 1);
                }
                else
                {
                    PaintListView(folderCol[0].ToString());
                }
            }        private void rbLargelcon_CheckedChanged(object sender, EventArgs e)
            {
                RadioButton rdb = (RadioButton)sender;
                if (rdb.Checked)
                {
                    this.lvFilesAndFolers.View = View.LargeIcon;
                }
            }        private void rbList_CheckedChanged(object sender, EventArgs e)
            {
                RadioButton rdb = (RadioButton)sender;
                if (rdb.Checked)
                {
                    this.lvFilesAndFolers.View = View.List;
                }
            }        private void rbSmallcon_CheckedChanged(object sender, EventArgs e)
            {
                RadioButton rdb = (RadioButton)sender;
                if (rdb.Checked)
                {
                    this.lvFilesAndFolers.View = View.SmallIcon;
                }
            }        private void rbDetails_CheckedChanged(object sender, EventArgs e)
            {
                RadioButton rdb = (RadioButton)sender;
                if (rdb.Checked)
                {
                    this.lvFilesAndFolers.View = View.Details;
                }
            }    }
    }
    那请问大神关联图片应该在哪里呢