/*★ クリックされたノードの子・孫を再起でトレース 前田 稔 ★*/
using System;
using System.Drawing;
using System.Windows.Forms;
public class MyForm : Form
{
private TreeView treeView1;
public MyForm()
{
InitializeComponent();
Load += new System.EventHandler(MyForm_Load);
}
private void InitializeComponent()
{
this.treeView1 = new System.Windows.Forms.TreeView();
this.SuspendLayout();
this.treeView1.Location = new System.Drawing.Point(12, 12);
this.treeView1.Name = "treeView1";
this.treeView1.Size = new System.Drawing.Size(254, 221);
this.treeView1.TabIndex = 0;
this.treeView1.AfterSelect +=
new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
this.ClientSize = new System.Drawing.Size(278, 245);
this.Controls.Add(this.treeView1);
this.Name = "MyForm";
this.ResumeLayout(false);
}
private void MyForm_Load(object sender, System.EventArgs e)
{
TreeNode Top = new TreeNode("トップ");
TreeNode Suzuki = new TreeNode("鈴木");
TreeNode Singo= new TreeNode("慎吾");
Singo.Nodes.Add(new TreeNode("あゆみ"));
Singo.Nodes.Add(new TreeNode("優子"));
Suzuki.Nodes.Add(Singo);
Suzuki.Nodes.Add(new TreeNode("和子"));
TreeNode Tanaka = new TreeNode("田中");
Tanaka.Nodes.Add(new TreeNode("ヘンリー"));
TreeNode Sato = new TreeNode("佐藤");
Sato.Nodes.Add(new TreeNode("エリザベス"));
Top.Nodes.Add(Suzuki);
Top.Nodes.Add(Tanaka);
Top.Nodes.Add(Sato);
treeView1.Nodes.Add(Top);
treeView1.TopNode.ExpandAll(); //Node を展開
}
// ノードの左クリックを検出
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
TreeNode selectedNode = e.Node;
Console.WriteLine(selectedNode.FullPath);
Trace(selectedNode, 0); //子・孫を再起でトレース
Console.WriteLine("------------");
}
// ノードの子・孫を再起でトレース
void Trace(TreeNode node, int lev)
{
TreeNode child = new TreeNode();
if (node==null) return;
if (lev>5) return;
Console.WriteLine(lev + ": " + node.Text);
child = node.FirstNode;
if (child==null) return;
Trace(child, lev+1);
child = child.NextNode;
Trace(child, lev+1);
}
}
class form01
{ public static void Main()
{ MyForm mf = new MyForm();
Application.Run(mf);
}
}
|