Visual C# 애플리케이션에서 파일 끌어서 놓기 기능 제공

이 문서에서는 Visual C# 애플리케이션에서 파일 끌어서 놓기 기능을 제공하는 방법을 보여줍니다.

원래 제품 버전: Visual C++
원래 KB 번호: 307966

요약

이 문서에 설명된 단계별 절차는 Visual C# 애플리케이션에서 파일 끌어서 놓기 기능을 제공하는 방법을 보여 줍니다. ListBox 컨트롤은 파일 끌어서 놓기 프로시저의 대상으로 사용됩니다.

요구 사항

이 목록에서는 필요한 권장 하드웨어, 소프트웨어, 네트워크 인프라 및 서비스 팩인 Visual C#을 간략하게 설명합니다.

이 문서에서는 다음과 같은 topics 잘 알고 있다고 가정합니다.

  • Windows Forms ListBox control
  • Windows Forms event handling

샘플 빌드 단계

ListBox 컨트롤은 처리 DragEnter 해야 하는 두 개의 끌어서 놓기 이벤트인 및 DragDrop를 제공합니다. 이벤트는 DragEnter 컨트롤의 범위 내에서 개체를 끌어서 끌 개체가 컨트롤에 놓을 수 있도록 허용할 개체인지 여부를 확인하는 데 사용될 때 발생합니다. 파일 또는 파일을 컨트롤로 끌어가는 경우 이 이벤트를 처리합니다. 이렇게 하면 끌기 중인 개체에 따라 개체를 컨트롤 위로 끌 때 적절한 아이콘을 표시할 수 있습니다. 이 DragDrop 이벤트는 끌어서 놓는 개체가 컨트롤에서 해제되었을 때 발생합니다. 이 이벤트를 처리하여 개체를 검색합니다. Data 개체는 데이터를 검색하는 데 사용됩니다.

Data 개체의 GetData 메서드는 컨트롤로 끌어간 파일의 전체 경로 이름을 포함하는 문자열 배열을 ListBox 반환합니다. 이 파일 경로 정보를 사용하여 파일에 필요한 작업을 수행할 수 있습니다. 예를 들어 네임스페이 System.IO 스의 클래스를 사용하여 파일을 열고 읽거나, 파일을 이동하거나, 파일을 새 위치로 복사할 수 있습니다. 이 예제에서는 컨트롤로 끌어 오는 파일에 전체 경로를 추가하기 ListBox 만 하면 됩니다.

Visual C# 애플리케이션에서 파일 끌어서 놓기 기능을 제공하려면 다음 단계를 수행합니다.

  1. Visual C# .NET 또는 Visual C# 2005에서 새 Windows Forms 애플리케이션을 만듭니다. Form1은 기본적으로 만들어집니다.

  2. 도구 상자를 사용하여 Form1에 컨트롤을 ListBox 추가합니다.

  3. 속성 창에서 컨트롤의 ListBox 속성을 True로 변경 AllowDrop 하여 개체를 컨트롤로 끌 수 있도록 합니다.

  4. 솔루션 탐색기 Form1을 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

  5. 이벤트를 처리 DragEnter 하려면 Windows Form Designer 클래스에서 생성하는 코드 섹션 아래에 다음 메서드를 Form1 추가합니다.

    private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
    {
        if(e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.All;
        else
            e.Effect = DragDropEffects.None;
    }
    
  6. 이벤트를 처리 DragDrop 하려면 5단계에서 추가한 메서드 Form1 바로 다음 클래스에 다음 메서드를 추가합니다.

    private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
        string[] s = (string[]) e.Data.GetData(DataFormats.FileDrop, false);
        int i;
        for(i = 0; i < s.Length; i++)
            listBox1.Items.Add(s[i]);
    }
    
  7. 두 이벤트 처리기를 컨트롤 이벤트와 연결하려면 에 대한 호출 InitializeComponent후 생성자에 다음 코드를 Form1 추가합니다.

    this.listBox1.DragDrop += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop);
    this.listBox1.DragEnter += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
    
  8. 프로젝트를 빌드하고 실행합니다.

  9. 하나 이상의 파일을 데스크톱 또는 다른 폴더에서 ListBox 컨트롤로 끌어옵니다. 파일의 전체 경로가 컨트롤에 ListBox 추가됩니다.

참조

자세한 내용은 다음 웹 사이트를 참조하세요.