[C#] エクスプローラ風のツリービュー表示

[C#] エクスプローラ風のツリービュー表示

Windowsフォームのアプリで、Windowsエクスプローラのようなフォルダやドライブ一覧をツリー表示する方法を調べてみた。

nugetの「ExpTreeLib」というライブラリを使うことによってC#やVB.NETで簡単?に実現できるらしい。
[C#] エクスプローラ風のツリービュー表示

備忘録ということで、いきなり手順。

nugetのライブラリ「ExpTreeLib」をダウンロード。
https://www.nuget.org/packages/ExpTreeLib/
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」ボタンをクリック。
インストール済み>Visual C#>Windowsクラッシック デスクトップ

 

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

 

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

 

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

 

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

 

インストールが完了すると「出力」ウインドウに結果が表示され、ソリューションエクスプローラーの「参照」の中に「ExpTreeLib」が追加される。
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”を選ぶ。
ExpTreeLib.dll

 

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

 

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

 

実際に、エクスプローラ風ツリービューをフォームに貼り付けてみる。

先ほど追加した「ExpTree」コントロールを、Form1.cs[デザイン]にドラッグ&ドロップ。この時点では白枠。
ドラッグ&ドロップ

 

この状態で試しに実行してみる。
実行開始

 

ちゃんとエクスプローラ風のツリービューが表示された。
[C#] エクスプローラ風のツリービュー表示

 
 
 

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

 
 
 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


*