2013-02-03 35 views
2

我想知道,如果在UI設計的領域中存在的情況下,您拖動一個TreeList的項目,並放到另一個TreeList項目只調用一個新窗口(執行一些功能),但不實際移動源並將其放到目標。是否可以在C#中進行拖放而不將源移動到目標?

我有這個要求,但我不確定它是否有意義。

我認爲在樹中拖放列表只是將一個項目移動到樹的另一個分支,而不是觸發彈出。我錯了嗎?我迄今看到的例子都將源頭移到目標。

回答

1

拖放基本上是一組觸發事件。您的代碼可以使用Drop事件來執行任何操作。因此觸發一個彈出窗口是完全可能的。

閱讀此http://msdn.microsoft.com/en-us/library/ms742859.aspx瞭解更多詳情。

void treeView_Drop(object sender, DragEventArgs e) 
{ 
    var sourceNode = (TreeNode)e.Data.GetData(typeof(TreeNode); 

    // TODO: popup window 
} 
+0

謝謝你的回覆,在我看來,一旦你設置AllowDrop爲真。實際舉措是不可避免的。我看了你介紹給我的那些文件,雖然有用,但請告訴我,如果你知道任何地方的完整例子。我已經設置了我的TreeList.AllowDrop = true;在我的Mouse_down事件中,我調用:this.treeList1.DoDragDrop(this.treeList1.FocusedNode,DragDropEffects.None);我在所有我的事件處理程序中實現了DropDropEffects.None,但仍然是源UIItem MOVES? – user1298925

+0

即使AllowDrop爲true,我相信您可以將DragDropEffects設置爲NONE以避免物理移動,但仍然使用DROP觸發事件來觸發彈出窗口:https://msdn.microsoft.com/en-us/library/system。 windows.dragdropeffects.aspx。 –

相關問題