C# 在TreeNode编辑器中禁用或灰显节点
如何禁用特定节点,以便用户无法选择它。为用户隐藏它也是有效的 我尝试了Visible属性,但它隐藏了整个树(所有节点)。我只想禁用/隐藏几个节点 C#使用Visual Studio 2005 TreeNode编辑器。两个选项:C# 在TreeNode编辑器中禁用或灰显节点,c#,visual-studio,treeview,visibility,C#,Visual Studio,Treeview,Visibility,如何禁用特定节点,以便用户无法选择它。为用户隐藏它也是有效的 我尝试了Visible属性,但它隐藏了整个树(所有节点)。我只想禁用/隐藏几个节点 C#使用Visual Studio 2005 TreeNode编辑器。两个选项: 动态添加和删除节点 所有者绘制并处理单击并将其发送到另一个节点 TreeNode本身没有任何启用的属性,因此您需要找到一些跟踪该状态的方法。一种方法是创建一个新类,该类继承TreeNode,并具有Enabled属性。另一种方法是维护禁用树节点的列表 完成后,您可以使用Tr
TreeNode
本身没有任何启用的属性,因此您需要找到一些跟踪该状态的方法。一种方法是创建一个新类,该类继承TreeNode
,并具有Enabled
属性。另一种方法是维护禁用树节点的列表
完成后,您可以使用TreeNode
的属性使其显示为灰色(例如使用值)
最后,您可以使用事件来评估用户选择特定节点是否合适,并在该事件中使用事件参数的Cancel
属性来防止在禁用该节点时选择该节点:
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=TreeNodeAction。无
我认为您还需要禁用此节点的可扩展性
yourNode.PopulateOnDemand=false
treeNode操作位于System.Web.UI.WebControls命名空间中。问题是关于Windows窗体的。当然,如果使用CheckBox属性,还需要处理BeforeCheck事件:private void TreeView_BeforeCheck(对象发送方,TreeViewCancelEventArgs e){if(SystemColors.GrayText==e.Node.ForeColor)e.Cancel=true;}