在C#中将文件添加到listview

时间:2010-12-01 02:52:58

标签: c# .net listview

我有一个Listview和一个“ADD”按钮,当我点击ADD时,我应该可以浏览计算机中的文件,选择文件,当点击OK或Open时,文件列表应该添加到listview中。 ..怎么做...是listview正确或任何其他替代...?

2 个答案:

答案 0 :(得分:3)

ListView应该可以用于文件列表。请注意,如果您只是添加列表的完整路径,则很难看到较长的文件路径(必须水平滚动哪个很糟糕!)。你可以玩其他代表的想法,如:

File.Txt (C:\Users\Me\Documents)
C:\Users\..\File.Txt
etc

就使用代码而言,您需要使用OpenFileDialog控件来让用户选择文件。

var ofd = new OpenFileDialog ();
//add extension filter etc
ofd.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ;
if(ofd.ShowDialog() == DialogResult.OK)
{
    foreach (var f in openFileDialog1.FileNames)
    {
        //Transform the list to a better presentation if needed
        //Below code just adds the full path to list
        listView1.Items.Add (f);

        //Or use below code to just add file names
        //listView1.Items.Add (Path.GetFileName (f));
    }
}

答案 1 :(得分:2)

如果要在设计器中执行此操作,可以执行以下步骤将图像添加到ListView控件:

  1. 切换到设计器,单击Component Tray上的ImageList组件,ImageList的右上角会出现一个智能标记。
  2. 单击智能标记,然后单击窗格中的“选择图像”。
  3. 在弹出的“图像集编辑器”对话框中,从所需的文件夹中选择图像。
  4. 单击“确定”完成向ImageList添加图像。
  5. 单击表单上的ListView,右上角会出现一个智能标记。
  6. 点击智能标记,你会发现那里有三个ComboBox,你可以从列表中选择一个ImageList。
  7. 单击智能标记上的“添加项目”选项,将出现一个ListViewItem集合编辑器,您可以将项目添加到ListView,这里设置ImageIndex或ImageKey属性非常重要,否则图像将不会出现。 / LI>
  8. 单击“确定”完成项目编辑,现在您将发现图像显示在ListView上。
  9. 如果您想通过代码将图像添加到ListView,您可以执行类似这样的操作

    在addButton_click

    中提供以下代码
            var fdlg = new OpenFileDialog();
            fdlg.Multiselect = true;
            fdlg.Title = "Select a file to add... ";
            fdlg.InitialDirectory = "C:\\";
            fdlg.Filter = "All files|*.*";
            fdlg.RestoreDirectory = true;
            if (fdlg.ShowDialog() == DialogResult.OK)
            {
                foreach (var files in fdlg.FileNames)
                {
                    try
                    {
                        this.imageList1.Images.Add(Image.FromFile(files));
                    }
    
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
                this.listView1.View = View.LargeIcon;
                this.imageList1.ImageSize = new Size(32, 32);
                this.listView1.LargeImageList = this.imageList1;
                //or
                //this.listView1.View = View.SmallIcon;
                //this.listView1.SmallImageList = this.imageList1;
               for (int j = 0; j < this.imageList1.Images.Count; j++)
                {
                    ListViewItem item = new ListViewItem();
                    item.ImageIndex = j;
                    this.listView1.Items.Add(item);
                }
            }