确保节点不可见。

3

我的问题是我希望能够设置某些节点不可见。我有两个表单,第二个表单中有复选框,与第一个表单中的节点同名。勾选其中一个复选框后,我希望使第一个表单中的此节点不可见。在表单之间传递数据是有效的,因为我用MessageBox测试过了。

第二个表单的代码(用于使节点不可见):

        private void button1_Click(object sender, EventArgs e)
    {
        if (checkBox1.Checked == true)
        {
            Form1.a = true;
        }


        this.Close();
    }

包含节点的第一个表单的代码:

    public static bool a;
    public static bool b;

    private void Categories()
    {
        if(a == true)
            {
                treeView1.Nodes[0].IsVisible = false;
            }

    }

我得到的错误:

Property or indexer 'System.Windows.Forms.TreeNode.IsVisible' cannot be assigned to -- it is read only

可能重复的问题 https://dev59.com/R0jSa4cB1Zd3GeqPHKZ5 - Sriram Sakthivel
1
由于IsVisible是只读属性。 - Jay Patel
1个回答

4

与其让树节点不可见,我认为当您不想显示它时应该从集合中将其删除,如果您想显示它,则必须再次添加它。

您可以使用Remove函数来删除节点。

tree.Nodes.Remove(myNode);

您可以尝试像这样的方法。
private void Categories()
{
  if(a == true)
  {
    treeView1.Nodes[0].Remove();
   }
}

2
这是正确的。如果你想隐藏它,就应该将其删除;如果你想再次显示它,就应该恢复它。 - Jay Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接