在c#中的列表框中拖放功能

时间:2011-05-05 06:06:29

标签: c#

我正在使用列表框控件。我能够在列表框中拖放文件。我为上面添加了以下代码。

 private void lstPDFFiles_DragEnter(object sender, DragEventArgs e)
    {
        //int i;
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.All;
        else
            e.Effect = DragDropEffects.None;

    }

    private void lstPDFFiles_DragDrop(object sender, DragEventArgs e)
    {
        string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
        int i;
        for (i = 0; i < s.Length; i++)
             lstPDFFiles.Items.Add(s[i]);

    }

这么多代码允许我在列表框中拖放1个文件。但现在我也想让用户拖放一个文件夹。我该怎么做呢 。先进的Thanx很多。请帮忙。

1 个答案:

答案 0 :(得分:2)

这可以帮到你!

if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
            foreach (string file in files)
            {
                if (Directory.Exists(file))
                {
                    string[] filenames = Directory.GetFiles(file);
                    foreach (string filename in filenames)
                    {
                        GetFiles(filename);
                    }
                }
                GetFiles(file);
            }
        }

    private void GetFiles(string file)
    {
        FileInfo fi = new FileInfo(file);
        listView1.Items.Add(fi.Name);
        listView1.Items[listView1.Items.Count - 1].SubItems.Add("test");
    }