Frameworkの標準コントロールであるTreeViewコントロール(System.Windows.Forms名前空間)を活用するために、TreeViewコントロールにデータを追加する方法を紹介する。TreeViewコントロールはデータ項目(ノード)をツリー形式で表示するためのもので、Windowsのエクスプローラでもおなじみのコントロールだ。次の画面のように、ツリー状にデータ項目を並べて表示することができる。TreeViewコントロールのツリー表示それではさっそくTreeViewコントロールへのデータの追加方法を説明しよう。本稿のサンプル・プログラムでは、次のようなツリーを構築してみよう。TreeViewコントロールの各ノードは、それぞれTreeNodeクラス(System.Windows.Forms名前空間)のオブジェクトとして実装する。上記のツリーには下位のノードとして「果物」と「野菜」という2項目があるが、まずこれらを次のようにして作成する。TreeNode("野菜");「食べ物」のように子ノードを持つノードの場合には、子ノードとなるTreeNodeオブジェクトを配列にして、コンストラクタの第2パラメータで指定することができる。treeNodeSubFolder);同様にして、「飲み物」のノードを作成する。TreeNode("飲み物");以上で、各項目に対するノードの作成は完了だ。次に最上位のノードである「食べ物」と「飲み物」をTreeViewコントロールに追加する。TreeViewコントロールへ項目を追加するにはTreeViewコントロールのNodesプロパティに対してAddメソッドもしくはAddRangeメソッドを使えばよい。AddRangeメソッドでは、次のように最上位のノードを配列にまとめて指定することにより、複数の項目を一度に追加できる。};treeView1.Nodes.AddRange(treeNodeRoot);以上をまとめた具体的なサンプル・コードは、次のとおりだ。TreeViewコントロールのデータを更新します。TreeViewコントロールのデータを更新します。SubTreeViewコントロールへデータをまとめて追加するサンプル・コード(VB.NET)上記のコードにあるTreeViewコントロールのClearメソッドは、既存のデータ項目をすべて消去するためのものだ。TreeViewコントロールのTopNodeプロパティは、追加された最初のTreeNodeオブジェクトを示す(上記の場合には、「食べ物」のノード)。このノードに対してExpandメソッドを呼び出すことにより、「食べ物」のノードが開かれて、その下位階層にある「果物」と「野菜」のノードが表示される。TreeViewコントロールへデータを1つずつ追加する方法ここまでに説明したような、複数のデータをまとめて追加する方法は、TreeViewコントロールを構築する際の初期表示で役立つだろう。初期表示以外では、状況に合わせてデータ項目を1つずつ登録していきたい場合もある。そのような場合には、前述のAddメソッドを利用すればよい。Addメソッドのパラメータには、TreeNodeオブジェクトを1つ指定する。このAddメソッドは、実際にはノードのコレクションを示すTreeNodeCollectionクラス(System.Windows.Forms名前空間)のメソッドである。各ノードからは、Nodesプロパティにより、そのノードが持つ子ノードのコレクションをTreeNodeCollectionオブジェクトとして取得することができる。以下のサンプル・コードは、あるノードが選択されたときに、そのノードに対して子ノードを1つ追加する。このコードはAfterSelectイベントのイベント・ハンドラとなっており、このイベントはTreeViewコントロールであるノードが選択された後に発生する。このとき、選択されたノードは、イベント・ハンドラにパラメータとして渡されたTreeViewEventArgsオブジェクトのNodeプロパティから取得できる。TreeViewコントロールに項目を1つだけ追加します。TreeViewコントロールに項目を1つだけ追加します。SubTreeViewコントロールのデータを1つだけ追加するサンプル・コード(VB.NET)以上のサンプル・プログラムを実行したのが次の画面である。TreeViewコントロールのサンプル・プログラムの実行結果サンプル・プログラムのソース・コード全体のダウンロード(C#:treeviewadd.cs/VB.NET:treeviewadd.vb)TreeViewコントロールでツリーを構築する場合、初期表示ですべてのノードを追加してしまうのが最も手軽な方法だろう。レジストリ・エディタやエクスプローラのように、ツリー階層が非常に深く、またその深さが不定で予想できない場合、ツリーのノードをすべて追加すると、それに時間がかかってしまい、アプリケーションのパフォーマンスが低下する可能性がある。「TIPS:TreeViewコントロールで効率的にツリーを構築するには?」では、それを回避する方法を紹介している。より自動抽出したものです。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。