如何使用C#在特定树节点上启用和禁用上下文菜单项

时间:2014-03-21 15:27:07

标签: c# winforms

我的WinForm应用程序中有一个树节点。它看起来像这样:

- Root Node 1
    - Subnode 1
    - Subnode 2
    - Subnode 3
    - Subnode 4
- Root Node 2
    - Subnode 5
    - Subnode 6

我得到了一个包含三个项目的上下文菜单:“编辑”,“删除”和“隐藏”。现在我想要为Subnode 2,Subnode 3和Subnode 5启用“Hide”。这在C#中是否可行?

我知道我可以禁用这样的项目:

menuItem1.Enabled = false;

建议赞赏:)

1 个答案:

答案 0 :(得分:2)

在树视图的AfterSelect事件中,只需检查所选节点是否等于所需的子节点。如果是,则禁用您的菜单项。

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
        if (e.Node.Name.Equals("Node1"))
        {
            DisableHide(true);
        }
        else
        {
            DisableHide(false);
        }
    }

    private void DisableHide(bool state)
    {
        menuItem1.Enabled = state;
    }