Windowsフォームのアプリで、Windowsエクスプローラのようなフォルダやドライブ一覧をツリー表示する方法を調べてみた。
nugetの「ExpTreeLib」というライブラリを使うことによってC#やVB.NETで簡単?に実現できるらしい。
![[C#] エクスプローラ風のツリービュー表示](https://www.osadasoft.com/wp-content/uploads/2018/11/00.png)
備忘録ということで、いきなり手順。
nugetのライブラリ「ExpTreeLib」をダウンロード。
https://www.nuget.org/packages/ExpTreeLib/

“exptreelib.3.2.0.nupkg”という名(V3.2.0の場合)のファイルがダウンロードされる。
ファイルを任意のフォルダに移動しておく。
D:\nuget\exptreelib.3.2.0.nupkg
Visual Studioを起動。
「ツール>NuGet パッケージ マネージャ」>パッケージ マネージャ設定」メニューを選択。

ツリーで「NuGetパッケージ マネージャー>パッケージソース」を選択し、画面右上の「+」ボタンをクリック。

画面右下の「ソース」右側の「…」ボタンをクリックし、ダウンロードしたファイルがあるフォルダを選択。
ソース欄のパスが書き換わるので、「更新」ボタンをクリック。更に「OK」をクリック。

これで、nugetのライブラリ「ExpTreeLib」の準備が完了。
ツリーで「インストール済み>Visual C#>Windowsクラッシック デスクトップ」を選択し、更にリストから「Windowsフォーム アプリケーション(.NET Framework)」を選択。
(C#でなく、Visual BasicでもOK)
下側の名前、場所、ソリューション名は必要に応じて変更し「OK」ボタンをクリック。

「ソリューション エクスプローラー」内の「参照」を右クリックし、ポップアップメニューから「NuGetパッケージの管理」を選択。

NuGetパッケージ管理の画面で、「参照」タブを選択し「パッケージ ソース」から「Package source」を選ぶと、先ほど準備した「ExpTreeLib」が表示される。

「ExpTreeLib」を選択し「インストール」ボタンをクリック。

「変更のプレビュー」ダイアログが表示されるので、確認して「OK」クリック。

インストールが完了すると「出力」ウインドウに結果が表示され、ソリューションエクスプローラーの「参照」の中に「ExpTreeLib」が追加される。

そして更に、今度はフォーム上にExpTreeのコントロール部品を貼り付けできるよう、ツールボックスにExpTreeを表示させておく必要がある。
ツールボックス上で右クリックし、「アイテムの選択」ポップアップメニューを選択。

「ツールボックス アイテムの選択」ダイアログで「.NET Frameworkコンポーネント」タブを選択。
画面下側にある「参照」ボタンをクリック。

ここでExpTreeのdllを選ぶ。
# 正直、正しいやり方が分からないので、もし誰か他の方法で解決する方法を知っていたら
# コメントください。
<dllの準備方法>
最初にダウンロードした”exptreelib.3.2.0.nupkg”というファイルは、zip形式で圧縮されているようなので、”exptreelib.3.2.0.nupkg”をコピーして、”exptreelib.3.2.0.zip”という風に拡張子変更し、解凍したファイルを用意しておく。
解凍したファイル群のlibフォルダ内に”ExpTreeLib.dll”が存在するのでこれを利用。
「開く」ダイアログで先ほど準備した”ExpTreeLib.dll”を選ぶ。

すると、一覧に”ExpTree”が追加されるので「OK」ボタンをクリック。

これで、ツールボックスに「ExpTree」が表示されるようになる。

実際に、エクスプローラ風ツリービューをフォームに貼り付けてみる。
先ほど追加した「ExpTree」コントロールを、Form1.cs[デザイン]にドラッグ&ドロップ。この時点では白枠。

自作ソフト「画像位置情報取得ツール」のツリー部分が思うように作れていない部分があったので、この方法で実装し直してみる予定。
まだまだ先になりそうだけど。。







