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を愛用