如何禁用特定节点,以便用户无法选择它。为用户隐藏它也是有效的。
我尝试了Visible属性但隐藏了整个树(所有节点)。我只想要一些节点被禁用/隐藏。
使用Visual Studio 2005 TreeNode编辑器进行C#。
答案 0 :(得分:26)
TreeNode
本身没有任何Enabled
属性,因此您需要找到一些跟踪该状态的方法。一种方法是创建一个继承TreeNode
且具有Enabled
属性的新类。另一种方法是维护已禁用的树节点列表。
完成后,您可以使用TreeNode
的{{3}}属性使其显示为灰色(例如使用ForeColor
值。)
最后,您可以使用SystemColors.GrayText
事件来评估用户是否可以选择特定节点,并使用该事件中事件args的Cancel
属性来阻止选择它节点被禁用:
private void TreeView_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
e.Cancel = !NodeIsEnabled(e.Node);
}
答案 1 :(得分:10)
我刚刚找到另一种方法来处理禁用的treenodes。如果您在不想使用的treenodes中显示灰色,则可以询问颜色并且不允许所有灰色节点。
private void TreeView_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
if(SystemColors.GrayText==e.Node.ForeColor)
e.Cancel = true;
}
答案 2 :(得分:0)
两个选项:
答案 3 :(得分:-2)
按Type | respons
weight 3.18456
malf 0
weight 4.2433
malf 1
weight 3.8543
malf 0
weight 4.0123
malf 1
weight 4.15
malf 1
我认为你还需要禁用可扩展的这个节点
yourNode.SelectAction = TreeNodeSelectAction.None