TreeViewで選択されているノードが変更されたことを検出する - C#
TreeViewで選択されているノードが変更されたことを検出するコードを紹介します。
UI
下図のUIを準備します。TreeViewを1つ、TextBoxを1つ配置します。TextBoxはMultilineプロパティをTrueにして複数行テキストボックスにします。
コード
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 SelectedNodeChangeEvent
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void FormMain_Load(object sender, EventArgs e)
{
TreeNode tn = new TreeNode("Root");
treeView1.Nodes.Add(tn);
TreeNode tnc = new TreeNode("Item1");
tn.Nodes.Add(tnc);
tnc = new TreeNode("Item2");
tn.Nodes.Add(tnc);
tnc = new TreeNode("Item3");
tn.Nodes.Add(tnc);
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
textBox1.Text += e.Node.Text + "を選択しました。\r\n";
}
}
}
解説
Load イベント
LoadイベントではTreeViewのノードを作成します。
private void FormMain_Load(object sender, EventArgs e)
{
TreeNode tn = new TreeNode("Root");
treeView1.Nodes.Add(tn);
TreeNode tnc = new TreeNode("Item1");
tn.Nodes.Add(tnc);
tnc = new TreeNode("Item2");
tn.Nodes.Add(tnc);
tnc = new TreeNode("Item3");
tn.Nodes.Add(tnc);
}
TreeView.AfterSelect イベント
TreeViewのノードが選択された際にAfterSelectイベントが呼び出されます。
選択しているノードはe.Nodeに設定されています。選択されているノードのTextプロパティをTextBoxに表示します。
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
textBox1.Text += e.Node.Text + "を選択しました。\r\n";
}
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
左側のツリービューを開き、子ノードをクリックして選択します。右側のテキストボックスに選択されたノードのタイトルテキストが表示されます。
クリックだけではなくキーボードを用いて選択ノードを変更した場合も右側のテキストボックスに選択されたノードのタイトルテキストが表示されます。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用