2011-06-28 48 views
1

我有一個System.Windows.Forms.TreeView控件,我想關閉特定子TreeNode對象的加號/減號。我知道我可以使用TreeView.ShowPlusMinus屬性在整個TreeView級別執行此操作,但是我想知道是否可以隱藏所選TreeNode對象的符號。關閉特定TreeView節點上的加號/減號

+0

你的意思是**沒有**刪除節點? – jp2code

+0

@ jp2code:通過從Web服務讀取數據動態加載節點。在每個節點加載到樹中之前,我想檢查它是否應該是不可摺疊的節點,在這種情況下,我希望禁用加號/減號(另外我也會將節點放入擴展模式並禁用常規雙擊展開/摺疊行爲)。節點添加到樹後,我不需要再次調整加/減。 – Abiel

回答

0

此基礎上您的編輯,你應該重寫你的TreeView的BeforeCollapse事件取消崩潰,如果它是一個非可摺疊的節點:

private void treeView1_BeforeCollapse(object sender, TreeViewCancelEventArgs e) { 
    MyParameter myP = e.Node.Tag as MyParameter; 
    if (myP != null) { 
    if (myP.Type == MyParameterType.NonCollapsible) { 
     e.Cancel = true; 
    } 
    } 
} 
+0

對不起,我意識到我的評論可能有點誤導。而不是說「禁用」加號/減號,我應該說「隱藏」。基本上我想禁用展開/摺疊行爲並隱藏加號/減號,以便用戶清楚該節點不能摺疊。我不知道該怎麼做的關鍵是隱藏加號/減號。 – Abiel

+0

我不認爲這是可能的內置控制。如果你想離開軸*,你將不得不**滾自己的**。 – jp2code