C#/윈폼

C# 윈폼 Drag & Drop

doridam 2023. 7. 14. 14:59


1. Drag & Drop 

C#에서 Drag & Drop 의 경우 소스컨트롤에 있는 데이터나 컨트롤을 복사 혹은 이동하는 등의 작업을 수행하는 것이다. 사용자는 마우스로 소스에 있는 데이터를 타겟으로 이동시켜 드랍하게 된다.
윈폼에서 Drag & Drop 을 구현하기 위해서는 Drop Source 구현과 Drop Target 구현이다.

 

2. 구현

2-1 Drop Source 구현

윈폼의 기본 Base 클래스인 Control 클래스는 DoDragDrop() 메서드를 가지고 있다. Drop Source 컨트롤에서 DoDragDrop 메서드를 호출하면 Drag & Drop 이 시작된다. 이벤트는 MouseDown 이벤트 핸들러에서 실행하게 된다.

먼저 textBox1에 MouseDown 이벤트를 추가한다. DoDragDrop 메서드를 사용하여 Text를 DragDropEffects.Copy : 복사 하는 이벤트를 작성한다.
textBox2에는 DragEnter와 DragDrop 이벤트를 작성하는데, text에 작성된 문자가 string인지 판단 후 맞다면 복사, 아니라면 Effect를 없는것으로 돌린다.
맞다면 DragDrop 이벤트를 통해 TextBox2의 text를 effect에 복사된 text로 저장한다.