2023年1月15日C#でちょっとしたアプリに、「エクスプローラ風のツリー表示を追加したいっ!!」となったので、簡単に実装できるコントローラについて調査してみました。何種類かありましたが、「ExpTreeLib」が簡単で良さそうだったので試してみました。のちのち使えるように、メモに残しておきます。「NuGetパッケージの管理」から追加することが出来ます。Formアプリのプロジェクトを作成します。プロジェクトを作成したら、「メニュー」→「プロジェクト」→「NuGetパッケージの管理」を選択します。NuGetパッケージ管理が表示されるので、「参照タブ」を選択して、検索欄に「ExpTreeLib」を入力して検索します。「ExpTreeLib」が表示されるので、インストールして下さい。Studioの出力欄に「終了」の文字が表示され、緑のチェックが付いたらインストール完了です。ソリューションエクスプローラーのプロジェクトの参照を開いて「ExpTreeLib」が追加されていることを確認して下さい。以上で準備は完了です。ExpTreeLibの実装それでは、ExpTreeLibを実装してエクスプローラに似たツリー表示を実際に試していきます。いっても、ツールボックスに追加されている「ExpTreeLib」をフォームに追加するだけです。実行してみると、エクスプローラー風のツリービューが表示されています。簡単で、カッコイイです。ListViewを追加フォームにListViewを追加して、TreeViewで選択したフォルダ配下の一覧を表示するように処理を追加します。フォームに「ListView」を追加します。次に、ツリービューのノード選択時に、ListViewに情報を表示する処理を追加します。e){}}}簡単にプログラムの説明を記載します。最初に、19~20行目のフォームロードの記述で、イベントハンドラの登録を行っています。これは、ツリー表示のノードをクリックした際に発生するイベントの登録になります。「expTree1」は、フォームに張り付けた「ExpTree」の「name」です。これで、ツリー表示のノードをクリックすると「expTree1_ExpTreeNodeSelected()」関数が呼び出されるようになります。ちなみに、イベントは以下のように定義されていました。ListViewに追加する処理になります。SelPath」に、選択したフォルダのフルパスが格納されているので、これを使用して、パス配下のフォルダ情報とファイル情報をリストに追加しています。View.Details;」の処理で、「View.Details」の所を変更すると、リストの表示を切り替えることができます。Viewは以下から選択して下さい。DetailsLargeIconListSmallIconTile以上でプログラムは終了です。実際に起動すると以下のようになります。後は、ListViewの表示に画像アイコンが付けば、エクスプローラの表示に近づく感じです。ちなみに、フォームロード処理の22行目にある、以下の処理を記述すると、指定フォルダをオープンした状態で起動できます。expTree1.ExpandANode(“フォルダパス”);関数の定義は以下になります。true)第一引数:指定フォルダパス第二引数:ノード選択イベント発生有無(falseで選択イベント未発生)例えば、以下にするとアプリケーション起動時に、「ユーザ」フォルダが開かれた状態になります。expTree1.ExpandANode(@”C:\Users”);最後に開いたフォルダを記録して、アプリケーション起動時に開くようにできそうです。簡単、便利、カッコイイです。ExpTreeLibの最新バージョンについてExpTreeLibを使用していて、突然落ちることがあったのでWebで調べてみたところ、Windows10の場合に発生することがあるようです。Nugetで取得したものは、若干問題が残っているようなので、GitHubから取得したものを使用したほうが良さそうです。以下のサイトから取得できます。GitHub-ExpTreeLibプロジェクトで提供されていて、ExpTreeLibのソースとDemoプログラムが入っています。ExpListLibというエクスプローラーの右側のファイルリスト機能があるコントローラ付きです。自分でListViewを使って実装しなくても良かったっぽいです。使用することで、エクスプローラー風の画面が簡単に作成できますので、ぜひお試しください。