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を愛用
掲載日: 2012-07-09
iPentec all rights reserverd.