TreeView に階層で登録

C# で TreeView にノードを階層構造で登録します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. TreeView は Windows エクスプローラでお馴染みの階層構造を持ったフォルダーなどを表示します。
    前回は単純な数件のノードだけでしたが、今度は階層(親・子)で登録してみましょう。
    空のプロジェクトから TreeView を設定して下さい。
    詳細は TreeView に登録する を参照して下さい。
  2. MyForm_Load() でノードを TreeView に登録します。
    Mago はノードの配列で "あゆみ", "優子" を定義しています。
    次に "慎吾" を定義して、その子として Mago を登録します。
    次に NodeRoot[] に Singo と "和子" を設定して TreeView に登録します。
    TopNode.Expand() で TreeView の先頭ノードを展開します。
        private void MyForm_Load(object sender, System.EventArgs e)
        {
            TreeNode[] Mago = { new TreeNode("あゆみ"), new TreeNode("優子") };
            TreeNode Singo = new TreeNode("慎吾", Mago);
            TreeNode[] NodeRoot = { Singo, new TreeNode("和子") };
            treeView1.Nodes.AddRange(NodeRoot);
            treeView1.TopNode.Expand();
        }
        
  3. 同じ処理をノードの配列を使わずに記述してみましょう。
    "慎吾" を定義して、Singo に "あゆみ", "優子" を登録します。
    次に TreeView に Singo に続いて "和子" を登録します。
    こちらの方が解り易いでしょうか。 (^_^;)
        private void MyForm_Load(object sender, System.EventArgs e)
        {   TreeNode Singo= new TreeNode("慎吾");
            Singo.Nodes.Add(new TreeNode("あゆみ"));
            Singo.Nodes.Add(new TreeNode("優子"));
            treeView1.Nodes.Add(Singo);
            treeView1.Nodes.Add(new TreeNode("和子"));
            treeView1.TopNode.Expand();
        }
        
  4. 今度は「親・子・孫」の関係で登録します。
    階層構造はページ先頭の画像を参照して下さい。
        private void MyForm_Load(object sender, System.EventArgs e)
        {
            TreeNode[] Mago= { new TreeNode("あゆみ"), new TreeNode("優子") };
            TreeNode Singo= new TreeNode("慎吾", Mago);
            TreeNode[] Kazuku = { Singo, new TreeNode("和子") };
            TreeNode Suzuki = new TreeNode("鈴木", Kazuku);
            TreeNode[] Henry = { new TreeNode("ヘンリー") };
            TreeNode Tanaka = new TreeNode("田中", Henry);
            TreeNode[] Elizabeth = { new TreeNode("エリザベス") };
            TreeNode Sato = new TreeNode("佐藤", Elizabeth);
            TreeNode[] NodeRoot = { Suzuki, Tanaka, Sato };
            treeView1.Nodes.AddRange(NodeRoot);
            treeView1.TopNode.Expand();
        }
        
  5. 同じ処理をノードの配列を使わずに記述してみます。
    こちらの方が解り易いでしょうか。 (^_^;)
        private void MyForm_Load(object sender, System.EventArgs e)
        {
            TreeNode Suzuki = new TreeNode("鈴木");
            TreeNode Singo= new TreeNode("慎吾");
            Singo.Nodes.Add(new TreeNode("あゆみ"));
            Singo.Nodes.Add(new TreeNode("優子"));
            Suzuki.Nodes.Add(Singo);
            Suzuki.Nodes.Add(new TreeNode("和子"));
            TreeNode Tanaka = new TreeNode("田中");
            Tanaka.Nodes.Add(new TreeNode("ヘンリー"));
            TreeNode Sato = new TreeNode("佐藤");
            Sato.Nodes.Add(new TreeNode("エリザベス"));
            treeView1.Nodes.Add(Suzuki);
            treeView1.Nodes.Add(Tanaka);
            treeView1.Nodes.Add(Sato);
            treeView1.TopNode.Expand();
        }
        
  6. Windows(C++) でも同様のプログラムを作成しています。
    超初心者のプログラム入門(Windows)から Tree View を表示する を参照して下さい。

超初心者のプログラム入門(C# Frame Work)