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

C# c中列表框中的拖放功能#,c#,C#,我正在使用列表框控件。我可以在列表框中拖放文件。我为上面的代码添加了以下代码 private void lstPDFFiles_DragEnter(object sender, DragEventArgs e) { //int i; if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.All; else

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

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

    }
private void lstpffiles\u DragEnter(对象发送方,DragEventArgs e)
{
//int i;
if(例如Data.GetDataPresent(DataFormats.FileDrop))
e、 效果=DragDropEffects.All;
其他的
e、 效果=DragDropEffects。无;
}
私有void lstpffiles_DragDrop(对象发送方,DragEventArgs e)
{
string[]s=(string[])e.Data.GetData(DataFormats.FileDrop,false);
int i;
对于(i=0;i
这大部分代码允许我在列表框中拖放1个文件。但是现在我还想允许用户拖放一个文件夹。我该怎么做呢。Thanx在先进技术方面有很多优势。请帮忙。

这可以帮你

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