2010-12-15 6 views
5

Windows Forms 응용 프로그램에서 DoDragDrop 메서드를 호출하는 컨트롤에 어떤 차이가 있는지 궁금합니다.DoDragDrop 메서드를 호출하는 컨트롤이 중요한가요?

두 개의 PictureBox 컨트롤이있는 Form이 있습니다. 하나는 드래그 할 수 있고 다른 하나는 AllowsDrop 속성을 true로 설정합니다. 다음과 같이

드래그의 PictureBox에 대한 MouseDown 이벤트 핸들러는 다음과 같습니다

private void dragPictureBox_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (sender is PictureBox) 
     { 
      var pictureBox = (PictureBox) sender; 
      var effect = pictureBox.DoDragDrop(
       pictureBox.Image, DragDropEffects.All); 
      MessageBox.Show("Drag ended in a " + effect); 
     } 
    } 

하지만 예를 들어, 양식 자체

어떤 컨트롤을 사용할 수 있습니다처럼의 PictureBox에 DoDragDrop를 호출하는 대신에, 나는 보인다
var effect = this.DoDragDrop(pictureBox.Image, DragDropEffects.All); 

또는

var effect = label1.DoDragDrop(pictureBox.Image, DragDropEffects.All); 

은 어떤 differe을 하는가 어떤 컨트롤에 DoDragDrop 메서드를 호출합니까? 그렇다면 차이점은 무엇입니까?

답변

3

매우 잘 설명되어 있지는 않지만 컨트롤에 따라 QueryContinueDrag 이벤트가 발생한다고 생각합니다.

모든 예제는 드래그 데이터의 소스를 사용하는 경향이 있으므로 사용하는 방법을 고수 할 것입니다.

+0

당신은 절대적으로 옳습니다. GiveFeedback 이벤트도 마찬가지입니다. 흥미롭게도 드래그 작업 중에는 키보드 나 마우스 버튼 상태가 변경되었을 때만 발생한다고되어 있지만 두 이벤트 모두 드래그 작업 중에 계속 발생합니다. – comecme

관련 문제