2012-12-21 2 views
2

UserControlWPF's XAML 편집기입니다. 나는 그것에 treenodes를 끌고 물건을하고 싶습니다. 드래그 시스템은 treeview 부분에서 작동합니다. 그러나 나는 사용자 정의 컨트롤에서 드롭 부분을 작동시키는 것처럼 보이지 않습니다. 컨트롤은 sharpdevelop 라이브러리를 사용하여 빌드됩니다.사용자 컨트롤 허용 드롭

내 사용자 지정 컨트롤의 AllowDrop 속성을 True으로 설정했습니다. 이것을 내 컨트롤에 추가했습니다.

this.DragDrop += new System.Windows.Forms.DragEventHandler(this.XmlEditControl_DragDrop) 

private void XmlEditControl_DragDrop(object sender, DragEventArgs e) 
{ 
    MessageBox.Show("I dropped"); 
} 

그러나 메시지 상자가 표시되지 않습니다. 나는 명백한 것을 놓치고 있는가?

답변

3

DragEnter 이벤트가 먼저 실행될 때 DragEventArgsDragDropEffects을 변경해야 끌어 놓기 작업을 완료 할 수 있습니다. 따라서, DragDrop 이벤트는 당신이 도움이 :)

+0

이 작동하지 않는 것을 발견 희망,

this.DragEnter += new System.Windows.Forms.DragEventHandler(this.XmlEditControl_DragEnter); this.DragDrop += new System.Windows.Forms.DragEventHandler(this.XmlEditControl_DragDrop); private void XmlEditControl_DragEnter(object sender, DragEventArgs e) { e.Effect = DragDropEffects.All; } private void XmlEditControl_DragDrop(object sender, DragEventArgs e) { MessageBox.Show("I dropped"); } 

감사를 해고한다. 나는 여전히 "여기에 떨어 뜨릴 수 없다"라는 표시를 보았습니다. 그래서 컨트롤을 전혀 사용하지 못하게되었습니다. 효과는 화재와 메시지 상자 중 하나가되었습니다. : ( – phadaphunk

+0

@PhaDaPhunk 문제가 무엇인지 모릅니다. 그렇다면,'DragOver' 이벤트 아래에'MessageBox'를 보여 주시겠습니까? :) –

+0

같은 일을합니다. 그것이 작동해야하기 때문에 신의 성가신 일입니다. 0_o – phadaphunk