如何禁用特定节点以使用户无法选择它。为用户隐藏它也是有效的。
我尝试了 Visible 属性,但它隐藏了整个树(所有节点)。我只想禁用/隐藏一些节点。
C# 使用 Visual Studio 2005 TreeNode 编辑器。
如何禁用特定节点以使用户无法选择它。为用户隐藏它也是有效的。
我尝试了 Visible 属性,但它隐藏了整个树(所有节点)。我只想禁用/隐藏一些节点。
C# 使用 Visual Studio 2005 TreeNode 编辑器。
它TreeNode
本身没有任何Enabled
属性,因此您需要找到一些跟踪该状态的方法。一种方法是创建一个继承TreeNode
并具有Enabled
属性的新类。另一种方法是维护禁用树节点的列表。
完成后,您可以使用 的ForeColor
属性TreeNode
使其显示为灰色(例如使用SystemColors.GrayText
值)。
最后,您可以使用该BeforeSelect
事件来评估用户是否可以选择特定节点,并Cancel
在该事件中使用事件 args 的属性来防止在该节点被禁用时选择它:
private void TreeView_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
e.Cancel = !NodeIsEnabled(e.Node);
}
我刚刚找到了另一种处理禁用树节点的方法。如果您不想使用的树节点中的灰色,您可以要求颜色并且不允许所有灰色节点。
private void TreeView_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
if(SystemColors.GrayText==e.Node.ForeColor)
e.Cancel = true;
}
两种选择:
设置禁用节点yourNode.SelectAction = TreeNodeSelectAction.None
我认为您还需要禁用可扩展此节点
yourNode.PopulateOnDemand = false