2012-09-07 62 views
1

我正在使用DotNetBar Advtree組件實現TreeControl。然而,我似乎正在努力尋找財產,使特定的節點不可能有任何孩子。我想在下面停止以下內容;防止在子網節點上拖放DotNetBar AdvTree/TreeControl

How to stop this with the TreeControl component?

例如RSS饋送不能包含在與RSS提要。有些實際上我想要一些節點可拖動,並且可以有子節點,其他節點只能拖動。

enter image description here

感謝您的幫助。我注意到了我設置爲-1或5000的屬性NodesIndent,但都沒有任何幫助。

+0

atkon鏈接似乎建議您訂閱NodeDragFeedback事件或BeforeNodeDrop事件並取消操作的文檔如果它是無效的位置 – wdavo

+0

是的,這就是我正在努力。對於樹上的每個節點,我有不同的節點類型,將它們與NodeDragFeedback進行比較可以很好地工作,但我無法重新排序節點以尋找其他方式;阻止節點生孩子。 – wonea

回答

1

剛剛發現在文檔中;

「獲取或設置被拖動節點的NewParentNode.Nodes集合內的新插入位置。如果InsertPosition爲-1,則ParentNode將當前鼠標指向節點並拖動&刪除節點將作爲子節點添加到它。「

所以基本上我可以捕獲它是否被添加到子節點,比較節點類型並決定是否接受丟棄。

2

根據http://www.devcomponents.com/kb2/?p=327,有一個DragDropEnabled屬性來控制它。如果這不起作用,請處理BeforeNodeDragStart事件並取消拖動。

[編輯:添加了以下]

爲了避免拖動某一節點,而不是別人下的節點處理BeforeNodeDrop事件,並設置取消= true,如果被拖動不能作爲子項添加到目的節點節點。

+0

我已經想出瞭如何啓用/禁用特定的樹節點被拖動,但我想要的是聲明某些節點可以有孩子,其他人不能。 – wonea

+0

@wonea我在答案中添加了更多信息。這有幫助嗎? – akton

+0

是的,我做了一個類型比較。爲不同類型派生節點,例如RSSNode:Node和InboxNode:Node。這很好,但由於我無法重新排序節點,因此我的唯一選擇似乎是以某種方式禁用了子節點。 – wonea