目次

TreeViewの特定のノードを削除する - C#

TreeViewで特定のノードを削除するコードを紹介します。

方法

TreeViewのノードを削除するには、TreeNodeのRemoveメソッドを呼び出します。

UI

下図のUIを準備します。(Buttonは4つ配置されていますが、使用するのはbutton3, button4の2つです。)

コード

以下のコードを記述します。
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 ClearNode
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      TreeNode root = new TreeNode("Root");
      treeView1.Nodes.Add(root);


      TreeNode child = new TreeNode("child1");
      root.Nodes.Add(child);

      for (int i = 0; i < 3; i++) {
        child.Nodes.Add(new TreeNode("subchild" + i.ToString()));
      }

      child = new TreeNode("child2");
      root.Nodes.Add(child);

      for (int i = 0; i < 3; i++) {
        child.Nodes.Add(new TreeNode("subchild" + i.ToString()));
      }

      child = new TreeNode("child3");
      root.Nodes.Add(child);
    
      for (int i = 0; i < 3; i++) {
        child.Nodes.Add(new TreeNode("subchild" + i.ToString()));
      }
    }

    private void button3_Click(object sender, EventArgs e)
    {
      TreeNode tn = treeView1.Nodes[0].Nodes[2].Nodes[1];
      tn.Remove();
    }

    private void button4_Click(object sender, EventArgs e)
    {
      TreeNode tn = treeView1.Nodes[0].Nodes[2];
      tn.Remove();
    }
  }
}

解説

button3
TreeNode tn = treeView1.Nodes[0].Nodes[2].Nodes[1];
にて、TreeViewのルートノードの3番目の子ノードの2番目の子ノードを取得します。

tn.Remove();
取得したノードのRemoveメソッドを呼び出し、ノードを削除します。
button4
TreeNode tn = treeView1.Nodes[0].Nodes[2];
にて、TreeViewのルートノードの3番目の子ノードを取得します。

tn.Remove();
取得したノードのRemoveメソッドを呼び出し、ノードを削除します。

実行結果

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


TreeViewのノードを展開すると下図となります。


button3を押します。ルートノードの3番目の子ノードの2番目の子ノードが削除されました。


button2を押します。ルートノードの3番目の子ノードが削除されました。子ノードが削除されると削除したノードより下の階層のノードはすべてTreeViewから取り除かれます。

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