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

本文关键字:拖放 功能 列表 | 更新日期: 2023-09-27 17:55:02

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

 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]);
    }

这么多代码允许我在列表框中拖放一个文件。但是现在我还想允许用户拖放一个文件夹。我该怎么做呢?提前谢谢你。请帮助。

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

这可以帮助你!

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");
    }