2011-05-05 94 views
2

我正在使用列表框控件。我可以在列表框中拖放文件。我为以上添加了以下代码。在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个文件。但是现在我也想让用户拖放一个文件夹。我该怎么做呢 。感谢先进的很多。请帮忙。

回答

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