前回の続きです。メニュー [サムネイル]を選択すると登録されているファイルのサムネイルが表示されます。さらにドラッグアンドドロップで順番を入れ替えることができます。

まずサムネイルを表示するためのユーザーコントロールを作成します。

ユーザーコントロールにチェックボックスと画像を表示するためのピクチャーボックス、ファイルのパスを表示するためのテキストボックスを貼り付けています。

UserControlを継承したUserControlExクラスを示します。

まずピクチャーボックスやユーザーコントロールでマウスが移動したときやマウスボタンが押されたときのイベントを定義しています。これでこのコントロールをフォームに貼り付けたときにどのユーザーコントロールがクリックされたのかがわかります。

それからサイズ変更がおこなわれたときにピクチャーボックスやテキストボックスが自動で適切な位置に表示されるようにAnchorプロパティを設定しています。

このユーザーコントロールの高さはピクチャーボックスの幅に対して、チェックボックスやテキストボックス分だけ大きくなります。幅だけ設定すると高さも変更できるようにWidthExプロパティを作成しています。

そのほかにも画像を表示させたり、チェックボックスがチェックされているのかがわかるようにするためのメソッドを定義しています。

じっさいにサムネイルを表示するときは新しいダイアログを表示させて、上記のユーザーコントロールを並べて表示することになります。

以下のようなクラスになっています。

ダイアログが生成されるとDatasから登録されているファイルからUserControlExオブジェクトが生成され、ダイアログ上に並べられます。このとき画像ファイルのイメージも表示されます。

そしてマウスがUserControlExコントロールの上を移動するとそのファイル名が表示され、ドラッグアンドドロップでこれらの表示順を変更することができます。

ダイアログが閉じられるとDatasが再構築されます。

あとはメインフォームのメニューの[サムネイル]がクリックされたらダイアログを表示し、閉じられたら変更を反映させます。