ツリービューの選択されたアイテムを判別

ツリービューを表示して、そこで選択されているアイテムを判別する。ツリービューは、SharpDevelopのデザイン画面でToolsから選んできて配置する。そのアイテムをクリックしたときに、アイテム名を表示するサンプルを書く。

プログラムは以下の通り。sender.SelectedNodeの型はTreeView型になっている。Textメソッドでアイテム名を取得できる。
この頃、IronPythonのプログラムにも慣れてきたが、本当にC#に似ていることを感じる。C#を使い慣れた人には、IronPythonはかなり馴染みやすいと思う。

import System.Drawing
import System.Windows.Forms

from System.Drawing import *
from System.Windows.Forms import *

class MainForm(Form):
 def __init__(self):
  self.InitializeComponent()
 
 def InitializeComponent(self):
  treeNode16 = System.Windows.Forms.TreeNode("Child-1-1")
  treeNode17 = System.Windows.Forms.TreeNode("Child-1-2")
  treeNode18 = System.Windows.Forms.TreeNode("List-1", System.Array[System.Windows.Forms.TreeNode](
   [treeNode16,
   treeNode17]))
  treeNode19 = System.Windows.Forms.TreeNode("Child-2-2")
  treeNode110 = System.Windows.Forms.TreeNode("List-2", System.Array[System.Windows.Forms.TreeNode](
   [treeNode19]))
  self._treeView1 = System.Windows.Forms.TreeView()
  self._label1 = System.Windows.Forms.Label()
  self.SuspendLayout()
  #
  # treeView1
  #
  self._treeView1.Dock = System.Windows.Forms.DockStyle.Fill
  self._treeView1.Location = System.Drawing.Point(0, 0)
  self._treeView1.Name = "treeView1"
  treeNode16.Name = "Child-1-1"
  treeNode16.Text = "Child-1-1"
  treeNode17.Name = "Child-1-2"
  treeNode17.Text = "Child-1-2"
  treeNode18.Name = "List-1"
  treeNode18.Text = "List-1"
  treeNode19.Name = "Child-2-1"
  treeNode19.Text = "Child-2-2"
  treeNode110.Name = "List-2"
  treeNode110.Text = "List-2"
  self._treeView1.Nodes.AddRange(System.Array[System.Windows.Forms.TreeNode](
   [treeNode18,
   treeNode110]))
  self._treeView1.Size = System.Drawing.Size(284, 262)
  self._treeView1.TabIndex = 0
  self._treeView1.AfterSelect += self.TreeView1AfterSelect
  #
  # label1
  #
  self._label1.Location = System.Drawing.Point(51, 186)
  self._label1.Name = "label1"
  self._label1.Size = System.Drawing.Size(184, 17)
  self._label1.TabIndex = 1
  #
  # MainForm
  #
  self.ClientSize = System.Drawing.Size(284, 262)
  self.Controls.Add(self._label1)
  self.Controls.Add(self._treeView1)
  self.Name = "MainForm"
  self.Text = "test"
  self.ResumeLayout(False)


 def TreeView1AfterSelect(self, sender, e):
  self._label1.Text = sender.SelectedNode.Text + " is selected."

このサンプルプログラムの実行例は以下の通り。

毎度のことではあるが、このサンプルコードの内容を表示するには下のコードを実行する必要がある。

import clr
clr.AddReference('System.Windows.Forms')
clr.AddReference('System.Drawing')

from System.Windows.Forms import Application
import MainForm

Application.EnableVisualStyles()
form = MainForm.MainForm()
Application.Run(form)