2
我想知道,如果在UI設計的領域中存在的情況下,您拖動一個TreeList的項目,並放到另一個TreeList項目只調用一個新窗口(執行一些功能),但不實際移動源並將其放到目標。是否可以在C#中進行拖放而不將源移動到目標?
我有這個要求,但我不確定它是否有意義。
我認爲在樹中拖放列表只是將一個項目移動到樹的另一個分支,而不是觸發彈出。我錯了嗎?我迄今看到的例子都將源頭移到目標。
我想知道,如果在UI設計的領域中存在的情況下,您拖動一個TreeList的項目,並放到另一個TreeList項目只調用一個新窗口(執行一些功能),但不實際移動源並將其放到目標。是否可以在C#中進行拖放而不將源移動到目標?
我有這個要求,但我不確定它是否有意義。
我認爲在樹中拖放列表只是將一個項目移動到樹的另一個分支,而不是觸發彈出。我錯了嗎?我迄今看到的例子都將源頭移到目標。
拖放基本上是一組觸發事件。您的代碼可以使用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
}
謝謝你的回覆,在我看來,一旦你設置AllowDrop爲真。實際舉措是不可避免的。我看了你介紹給我的那些文件,雖然有用,但請告訴我,如果你知道任何地方的完整例子。我已經設置了我的TreeList.AllowDrop = true;在我的Mouse_down事件中,我調用:this.treeList1.DoDragDrop(this.treeList1.FocusedNode,DragDropEffects.None);我在所有我的事件處理程序中實現了DropDropEffects.None,但仍然是源UIItem MOVES? – user1298925
即使AllowDrop爲true,我相信您可以將DragDropEffects設置爲NONE以避免物理移動,但仍然使用DROP觸發事件來觸發彈出窗口:https://msdn.microsoft.com/en-us/library/system。 windows.dragdropeffects.aspx。 –