TreeViewの指定したノードに子ノードを追加する

TreeViewの指定したノードに子ノードを追加するコードを紹介します。

プログラム

UI

下図のUIを作成します。TreeViewを1つ、Buttonを1つ設置します。


コード

以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AddChildNode
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      if (treeView1.SelectedNode == null) {
        TreeNode tn = new TreeNode("ノード");
        treeView1.Nodes.Add(tn);
        
        //treeView1.Nodes.Add("ノード");//こちらでも可
      }
      else {
        TreeNode tn = new TreeNode("ノード");
        treeView1.SelectedNode.Nodes.Add(tn);

        //treeView1.SelectedNode.Nodes.Add("ノード");//こちらでも可

         treeView1.SelectedNode.Expand();
      }
    }
  }
}

解説

TreeViewでノードが選択されていない場合はTreeView.Nodes.Addメソッドを呼び出しルートノードを追加します。
  if (treeView1.SelectedNode == null) {
    TreeNode tn = new TreeNode("ノード");
    treeView1.Nodes.Add(tn);
        
    //treeView1.Nodes.Add("ノード");//こちらでも可
   }

TreeViewのノードが選択されている場合 SelectedNodeがnullではない値になるため、elseブロックが実行されます。 SelectedNodeのAddメソッドを呼び出し選択されているノードの子ノードを追加します。
ノードが追加されたらノードが画面に表示されるよう、SelectedNodeのExpand()メソッドを実行し、SelectedNodeを展開して追加された子ノードを画面に表示します。
else {
  TreeNode tn = new TreeNode("ノード");
  treeView1.SelectedNode.Nodes.Add(tn);

  //treeView1.SelectedNode.Nodes.Add("ノード");//こちらでも可

  treeView1.SelectedNode.Expand();
}

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


[button1]を押します。TreeViewに最上位レベルのノードが追加されます。


追加されたノードをクリックして選択します。選択後[button1]を押します。


選択されたノードに子ノードが追加できました。


[button1]を押すと選択したノードに子ノードが追加できます。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2012-07-11
Copyright © iPentec all rights reserverd.