다음을 통해 공유


Windows Forms에서의 끌어서 놓기 기능

Windows Forms에는 끌어서 놓기 동작을 구현하는 메서드, 이벤트 및 클래스 집합이 포함되어 있습니다. 이 항목에서는 Windows Forms의 끌어서 놓기 지원에 대해 개괄적으로 설명합니다. 또한 끌어서 놓기 작업 및 클립보드 지원도 참조하세요.

끌어서 놓기 작업 수행

끌어서 놓기 작업을 수행하려면 Control 클래스의 DoDragDrop 메서드를 사용합니다. 끌어서 놓기 작업을 수행하는 방법에 대한 자세한 내용은 DoDragDrop을 참조하세요. 끌어서 놓기 작업이 시작되기 전에 마우스 포인터를 위로 끌어와야 하는 사각형을 가져오려면 SystemInformation 클래스의 DragSize 속성을 사용합니다.

끌어서 놓기 작업에는 두 가지 범주의 이벤트가 있습니다. 하나는 끌어서 놓기 작업의 현재 대상에서 발생하는 이벤트이고, 다른 하나는 끌어서 놓기 작업의 소스에서 발생하는 이벤트입니다.

현재 대상의 이벤트

다음 표에서는 끌어서 놓기 작업의 현재 대상에서 발생하는 이벤트를 보여 줍니다.

마우스 이벤트 Description
DragEnter 이 이벤트는 개체를 컨트롤의 범위로 끌어올 때 발생합니다. 이 이벤트의 처리기는 DragEventArgs 형식의 인수를 받습니다.
DragOver 이 이벤트는 마우스 포인터가 컨트롤의 범위 내에 있는 동안 개체를 끌 때 발생합니다. 이 이벤트의 처리기는 DragEventArgs 형식의 인수를 받습니다.
DragDrop 이 이벤트는 끌어서 놓기 작업이 완료될 때 발생합니다. 이 이벤트의 처리기는 DragEventArgs 형식의 인수를 받습니다.
DragLeave 이 이벤트는 컨트롤의 범위 밖으로 개체를 끌 때 발생합니다. 이 이벤트의 처리기는 EventArgs 형식의 인수를 받습니다.

DragEventArgs 클래스는 마우스 포인터의 위치, 마우스 단추의 현재 상태 및 키보드의 한정자 키, 끄는 데이터, 끌기 이벤트의 소스에서 허용되는 작업과 작업의 대상 놓기 효과를 지정하는 DragDropEffects 값을 제공합니다.

소스의 이벤트

다음 표에서는 끌어서 놓기 작업의 소스에서 발생하는 이벤트를 보여 줍니다.

마우스 이벤트 Description
GiveFeedback 이 이벤트는 끌기 작업 중에 발생합니다. 마우스 포인터 변경 등 끌어서 드롭 작업이 발생하고 있음을 알리는 시각 신호를 사용자에게 제공할 수 있습니다. 이 이벤트의 처리기는 GiveFeedbackEventArgs 형식의 인수를 받습니다.
QueryContinueDrag 이 이벤트는 끌어서 놓기 작업 중에 발생하며 끌기 소스가 끌어서 놓기 작업을 취소해야 할지를 결정하도록 합니다. 이 이벤트의 처리기는 QueryContinueDragEventArgs 형식의 인수를 받습니다.

QueryContinueDragEventArgs 클래스는 마우스 단추의 현재 상태 및 키보드의 한정자 키, Esc 키를 눌렀는지 여부를 지정하는 값, 끌어서 놓기 작업을 계속할지 여부를 지정하기 위해 설정할 수 있는 DragAction 값을 제공합니다.

참고 항목