TreeViewはエクスプローラのナビゲーションウインドウのようにフォルダ階層をツリー表示するようなコントロールです。
ツリーに並ぶアイテムを「ノード」という呼称になります。
動作
●FullRowSelect
ノード選択時にTreeViewの幅全体をハイライトします。
ノード名の長さにハイライトの長さが左右されないようTrue推奨です。●HideSelection
フォーカスが移ったら選択中のノードのハイライトを消します。
今何を選択しているのか分からなくなるのでFalse推奨です。●Indent
ノードのインデントの設定。ただしデフォルトの19が丁度良いです。●LabelEdit
ユーザーがノードのラベル名を編集できるようにします。
選択中のノードをさらにクリックすると編集可能状態になります。
ラベル名変更ダイアログなど自作しなくて済むのでTrue推奨です。
F2キーで編集可能にするにはそのように実装する必要があります(後述)。●ShowLines
ノードの階層をラインで表示します。
シンプルな見た目にしたい場合はFalseで。
表示
●BackColor
背景色●Font
ノードのラベルで表示される文字のスタイル●BorderStyle
コントロールの枠線のスタイル。●ForeColor
ノードのラベルの文字色。
よく使うコード例
ノードを追加する場合
// ノードの生成
TreeNode インスタンス名 = new TreeNode(ラベルの文字列);// 生成したノードの追加
treeView1.Nodes.Add(インスタンス名);// 追加したノードを選択
treeView1.SelectedNode = インスタンス名;
ノードが選択されているか調べる場合
// ノードを選択しているかどうかを判定
if (treeView1.SelectedNode != null)// 親ノードが存在するか判定
if (treeView1.SelectedNode.Parent == null)
選択中のノードに子ノードを追加
// 空のノードを生成
TreeNode 子のインスタンス名 = new TreeNode(子のラベルの文字列);// 選択中の親ノードをインスタンスに代入
TreeNode 親のインスタンス名 = treeView1.SelectedNode;// 親ノードに子ノードを追加
親のインスタンス名.Nodes.Add(childNode);// 親のツリーを開く
親のインスタンス名.Expand();
親ノードを選択
// 空のノードを生成
TreeNode インスタンス名 = new TreeNode();// 選択中のノードの親をインスタンスに代入
インスタンス名 = treeView1.SelectedNode.Parent;// ラベル名を取得
string s = インスタンス名.Text;
選択中のノードを削除
// 選択中のノードを削除
treeView1.SelectedNode.Remove();
ノードをindexで指定する
// 0 番目のノード
treeView1.Nodes[0];
ルートノードの数をカウントする
// ルートノードの数をカウント
int i = treeView1.Nodes.Count;
選択中のノードと同じ親のノードをカウントする
// 同じ親に属するノードの数をカウント
TreeNode インスタンス名 = treeView1.SelectedNode;
int i = インスタンス名.Nodes.Count;
ノードにオブジェクトを渡す
// 空のノードを生成
var インスタンス名 = new クラス();// 空のノードを生成
rootNode.Tag = fData;
ラベル名編集関連はこちらの記事が参考になります。
TreeViewのノードのテキストをユーザーが編集できるようにする - .NET Tips (VB.NET,C#...)
ツリーをドラッグ&ドロップで操作したい場合について。
TreeViewのノードをDrag&Dropにより移動、コピーできるようにする - .NET Tips (VB.NET,C#...)
※随時更新