2012-12-21 68 views
2

我有一個UserControl它看起來像WPF's XAML編輯器。我想拖動treenodes並做些東西。拖動系統正在爲樹視圖部分工作。但我似乎無法讓自定義控件中的拖放部分工作。 (該控件是使用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事件將觸發

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"); 
} 

謝謝,
我希望對您有所幫助:)

+0

不工作。我仍然看到「不能放在這裏」的標誌,所以我不允許放下控制器,效果不會觸發,我的消息框也是。:( – phadaphunk

+0

@PhaDaPhunk不知道問題可能是什麼。你確定其他事件是否正確啓動?如果是這樣,你可以試着在'DragOver'事件下顯示'MessageBox'嗎?:) –

+0

也是一樣的。上帝這是煩人的,因爲它應該工作。 0_o – phadaphunk

相關問題