2011-06-28 22 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