반응형
[C#] 리스트컨트롤(ListView)에 드래그앤 드랍으로 파일 추가하기 |
환경 : Visual Studio 2013 |
이번 예제는 파일을 리스트 컨트롤에 끌어서 놓았을 때 파일 제목을 추가하는 방법에 대한 내용입니다. 파일을 추가할 때 파일 다이얼로그를 이용하기도 하지만 폴더를 열어서 끌어나 놓는 것이 더 편리하죠.
▼ 리스트 컨트롤에 파일을 추가하기 위해서는 속성값을 변경해야 합니다. AllowDrop = true 로 변경합니다. 드래그 앤 드랍을 허용한다는 의미겠죠.
▼ 다음은 드래그 앤 드랍에 쓰이는 이벤트 함수 두개를 만듭니다. DragDrop 과 DragEnter 함수인데 DragDrop 은 리스트 컨트롤에 마우스를 드래그해서 놓았을 때 발생하는 함수이며, DragEnter 은 마우스로 리스트컨트롤 안으로 들어왔을 때 발생하는 함수 입니다.
▼ DragEnter 이벤트 함수는 드래그 앤 드랍이 가능하다는 표시를 하기 위한 것입니다. 이것을 구현하지 않으면 파일이 리스트에 추가 되지 않는 것 처럼 보일 겁니다.
private void listView1_DragEnter(object sender, DragEventArgs e) { e.Effect = DragDropEffects.Copy; }
▼ DragDrop 이벤트 함수는 리스트에 파일의 제목을 추가하는 내용입니다.
private void listView1_DragDrop(object sender, DragEventArgs e) { string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); foreach (string file in files) listView1.Items.Add(file); }
▼ 폴더에 있는 파일을 드래그 해서 넣은 모습입니다. 같은 파일이 있는지 검사하는 기능과 경로, 제목을 분리해서 보여주는 등의 부족한 면은 이제부터 구현 해야 겠죠.
반응형
'기타 언어 > C# & MFC' 카테고리의 다른 글
시샵 C# 새로운 Form 다이얼로그, 팝업창 띄우기, 원하는 위치에 띄우기 (0) | 2022.10.28 |
---|---|
C 언어 무료 컴파일 도구 Dev C++ 디버깅 하는 방법 (0) | 2022.09.08 |
시샵 C# XmlDocument 클래스 사용해서 XML 파싱하는 방법 (0) | 2022.08.13 |
시샵(C#) 프로젝트 기본 시작 Form 설정하기 (0) | 2022.07.09 |
[C#] 폼에서 패널컨트롤(Panel)이용해서 멀티 페이지 구현하기 (0) | 2020.01.14 |
[C#] SQLite 데이터베이스 접속과 데이터 가져와서 표현하는 방법 (2) | 2020.01.09 |
[C#] ListView 컨트롤에서 행 선택 시 열 전체가 선택된 것처럼 보이게 하는 방법 (3) | 2020.01.02 |
프로그램 개발을 위한 무료 비주얼 스튜디오 2015 설치하기 (0) | 2019.06.19 |