前回作成した自作フォトビューアー

フォトビューアーをつくる方法

これだとアプリを終了すると登録したファイルの情報もなくなってしまいます。そこで登録したファイルを保存できるようにしました。

登録したファイルを保存/読み出しできるようにする

項目の順番を入れ替える/コピーする

これで登録されたファイルを保存することができたのですが、順番を入れ替えることができるようにしたいと思いませんか?

えっ、思わない? 私は思います。なのでドラッグ&ドロップで登録されているファイルの順番を入れ替えることができるようにします。

そのためには、MouseDownを使います。ListBox.DoDragDropメソッドを呼ぶのですが、ドラッグが開始されたときにどの部分にマウスカーソルがあるか知る必要があります。

とやれば、どの部分にマウスカーソルがあるかわかります。

DoDragDropメソッドには選択されているアイテムのIndexをわたしています。

ドラッグされているのはint型データなのか、それともファイルなのか? GetDataPresentをつかえばわかります。

ドロップされたらint型データを取得するとともに、ドロップされた場所を調べます。取得されたint型データとドロップされた場所がリストボックスの同じ項目であればなにもする必要はありません。

リストボックスのアイテムの順番を入れ替えるとき、選択されているアイテムが変更されます。そのときにListBox.SelectedIndexChangedイベントが発生するため、フィールド変数 isIgnoreを使ってなにも起きないようにしています。

項目を削除する

並べ換えができるなら削除もできるはずです。やってみましょう。