파일 시스템에 액세스하기위해 using System.IO; 선언
Form의 AllowDrop 속성 true
일반적으로 Form이나 Control에는 파일을 Drop할 수 없기 때문에, 해당 Form이나 Control에 AllowDrop 속성을 true로 설정해주어야 한다.
this.AllowDrop = true;
DragEnter, DragDrop 이벤트 핸들러 추가
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
DragEnter 이벤트 : 사용자가 무언인가를 드래그 앤 드롭해서 해당 Form에 들어올 때 이벤트가 발생한다.
DragDrop 이벤트 : 드롭하는 순간 발생한다.
private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
}
Drag & Drop이 시작될 때 DragEventArgs e 로 전달된 Data가 DataFormats.FileDrop 포맷인지 확인하고 맞는 경우엔 DragDrop 효과를 Copy로 설정한다.
DataFormats 클래스 : 드래그 앤 드롭 작업에 사용되는 데이터 형식의 이름을 정의하는 클래스
DataFormats.FileDrop 상수 : 파일 경로의 배열을 나타내는 드래그 앤 드롭 데이터 형식
private void Form1_DragDrop(object sender, DragEventArgs e)
{
// Drag & Drop이 완료되면, 파일 경로를 확인하여 표시
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
if (files.Length > 0 && File.Exists(files[0]))
{
string filePath = files[0];
this.textBox1.Text = filePath;
}
}
Drag & Drop이 완료되면, GetData()함수를 사용해 파일 경로의의 리스트를 가져오고, 파일 경로가 존재하는 경우 textBox에 표시한다.
사용예시
2023.05.14 - [프로그래밍/C# (WinForms)] - C#, WinForms ] CRC Checker
'프로그래밍 > C# (WinForms)' 카테고리의 다른 글
C#, WinForms ] Event 와 delegate (0) | 2023.05.14 |
---|---|
C#, WinForms ] CRC Checker (0) | 2023.05.14 |
C# ] delegate (0) | 2023.05.14 |
C#, WinForms ] 폼 시작시, 종료시 이벤트 호출 순서 (0) | 2023.05.14 |
C#, WinForms ] program.cs C# 프로그램 진입점 (0) | 2023.05.14 |