3

私の問題は、特定のノードを非表示に設定できるようにしたいということです。私は2つのフォームを持っています。2 つ目は、最初のフォームのノードと同じ名前の魔女のチェックボックスです。チェックボックスの1つをチェックした後、最初のフォームでこのノードを非表示にしたいと思います。MessageBox でテストしたため、フォーム間でのデータの受け渡しは機能します。

2 番目の形式のコード (ノードを非表示にするための Responslibe):

        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
4

1 に答える 1

4

ツリー ノードを非表示にする代わりに。表示したくない場合はコレクションから削除し、表示したい場合は再度追加する必要があると思います。

Remove 関数を使用してノードを削除できます

tree.Nodes.Remove(myNode);

このようなものを試すことができます

private void Categories()
{
  if(a == true)
  {
    treeView1.Nodes[0].Remove();
   }
}
于 2013-07-17T21:01:56.890 に答える