これまでリストビューのViewプロパティは View.Detailsを使用してきました。画像ファイルであればどのような画像なのかわかるようにアイコンで表示させます。またアイコンの大きさも自由に変更できるようにします。

以下はアイコンの大きさを指定するためのダイアログです。イメージリストに設定できるサイズが256ピクセルまでなのでNumericUpDownの最大値を256にしています。最小値は1以上であればよいのですが、あまり小さいとよくわからないので16ピクセルにしています。

[確定]がクリックされたら設定している値がフィールド変数に格納されます。これをつかってアイコンの大きさを変更します。

アイコンの大きさを設定するダイアログが[確定]で閉じられたら、その値を取得してIconSizeプロパティを設定します。メニューから32×32ピクセル、64×64ピクセル、128×128ピクセルが選択できます。

IconSizeプロパティが変更されたらリストビューの表示を変更します。現在選択されているフォルダが存在することを確認したら、自作メソッドShowItems(string folderPath)で表示内容を変更します。

自作メソッドのGetFileImage(string path)は、ファイルがイメージファイルの場合はそのビットマップイメージを、それ以外のファイルの場合はアプリケーションと関連づけられたファイルのアイコンからビットマップイメージを取得するためのものです。

ShowItems(string folderPath)メソッドを使えば、MoveRootFolder(string driveName)メソッドと MoveToFolder(string path)メソッドもシンプルになります。

ファイルがイメージファイルの場合はそのビットマップイメージを、それ以外のファイルの場合はアプリケーションと関連づけられたファイルのアイコンからビットマップイメージを取得するGetFileImage(string path)メソッドを示します。

フォルダを表示するためのビットマップデータを取得するためのGetFolderImage()メソッドを示します。ファイルアイコンを取得するためにAPI関数 SHGetFileInfo関数を使用しています。