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# 애플리케이션에서 파일 끌어서 놓기 기능을 제공하려면 다음 단계를 수행합니다.
Visual C# .NET 또는 Visual C# 2005에서 새 Windows Forms 애플리케이션을 만듭니다. Form1은 기본적으로 만들어집니다.
도구 상자를 사용하여 Form1에 컨트롤을
ListBox
추가합니다.속성 창에서 컨트롤의
ListBox
속성을 True로 변경AllowDrop
하여 개체를 컨트롤로 끌 수 있도록 합니다.솔루션 탐색기 Form1을 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.
이벤트를 처리
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; }
이벤트를 처리
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]); }
두 이벤트 처리기를 컨트롤 이벤트와 연결하려면 에 대한 호출
InitializeComponent
후 생성자에 다음 코드를Form1
추가합니다.this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); this.listBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
프로젝트를 빌드하고 실행합니다.
하나 이상의 파일을 데스크톱 또는 다른 폴더에서 ListBox 컨트롤로 끌어옵니다. 파일의 전체 경로가 컨트롤에
ListBox
추가됩니다.
참조
자세한 내용은 다음 웹 사이트를 참조하세요.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기