ツリービューの選択されたアイテムを判別
ツリービューを表示して、そこで選択されているアイテムを判別する。ツリービューは、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)