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