2011-05-05 4 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]); 

    } 

이렇게 많은 코드를 사용하여 목록 상자에 파일 하나를 끌어다 놓을 수 있습니다. 하지만 이제는 사용자가 폴더를 드래그 앤 드롭 할 수있게하려고합니다. 어떻게해야합니까? 고맙습니다. 도와주세요.

답변

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