개발/C#

c# 드래그 앤 드랍 ( drag and drop)

FA1976 2020. 1. 16. 09:16

드래그 앤 드랍 할 컨트롤 에 Allowdrop 를 true 로 해준뒤 아래 코드를 삽입하면 드래그앤 드랍이 된다.

아래 코드는 리스트 박스에 드래그한 파일의 경로를 추가해준다.

        private void listbox_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
        }

        private void listbox_DragDrop(object sender, DragEventArgs e)
        {
            string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);

            foreach (string str in files) // 선택 폴더의 파일 목록을 스캔합니다. 
            {
                listbox_rompath.Items.Add(str);
            }
        }

 

폴더 경로를 추가할때 DragDrop 부분은 동일하나 DragEnter 부분이 다름.

 void listbox_DragEnter(object sender, DragEventArgs e)
 {
     DragDropEffects effects = DragDropEffects.None;
     if (e.Data.GetDataPresent(DataFormats.FileDrop))
     {
         var path = ((string[])e.Data.GetData(DataFormats.FileDrop))[0];
         if (Directory.Exists(path))
             effects = DragDropEffects.Copy;
     }

     e.Effect = effects;
 }