c# 在TreeNode编辑器中禁用或灰显一个节点

更新时间:2024-05-09 下载TXT文档 下载Word文档

如何禁用特定节点以使用户无法选择它。为用户隐藏它也是有效的。

我尝试了 Visible 属性,但它隐藏了整个树(所有节点)。我只想禁用/隐藏一些节点。

使用 Visual Studio 2005 TreeNode 编辑器的 C#。

TreeNode 本身没有任何 Enabled 属性,因此您需要找到一些方法来跟踪该状态。一种方法是创建一个继承 TreeNode 并具有 Enabled 属性的新类。另一种方法是维护禁用的树节点列表。

完成后,您可以使用 TreeNodeForeColor 属性使其显示为灰色(例如使用 SystemColors.GrayText 值)。

最后,您可以使用 BeforeSelect 事件来评估用户是否可以选择特定节点,并在该事件中使用事件参数的 Cancel 属性来防止在该节点被禁用时选择它: 短码网-DuanMa.NET

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;
    }
  • 当然,如果使用 CheckBox 属性,还需要处理 BeforeCheck 事件: private void TreeView_BeforeCheck(object sender, TreeViewCancelEventArgs e) { if (SystemColors.GrayText == e.Node.ForeColor) e.Cancel = true; }

两个选项:

  • 动态添加和删除节点。
  • 所有者绘制并处理点击并将其发送到另一个节点。
  • 通过yourNode.SelectAction = TreeNodeSelectAction.None

    设置禁用节点

    我认为您还需要禁用可扩展此节点
    yourNode.PopulateOnDemand = false

    • TreeNodeSelectAction 位于 System.Web.UI.WebControls 命名空间中。问题是关于 Windows 窗体的。干杯

    以上就是短码网小编为大家整理的《c# 在TreeNode编辑器中禁用或灰显一个节点》相关内容,希望大家喜欢。

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!

    c# 在TreeNode编辑器中禁用或灰显一个节点》文档下载仅供参考学习,下载后请在24小时内删除。

    转载注明出处:https://www.duanma.net/article/73f73481846.html

    回到顶部