C# 5分で作るドラッグアンドドロップ


あれ?
ドラッグアンドドロップって
どうやったっけ(;´・ω・)

ひっさびさにC#を触ったんだが、
これがさっぱり思いだせんのです・・・

いやはや、歳はとりたくないねw

ってことで、ベタにべたっと張っておく。

まずはフォームアプリを作成だ!

フォームに適当なUI要素を作成。
別になんでもいい。今回はPanelで作った。

作成したUI要素のAllowDropをTrueに変えておこう。
(ちなみに、この項目がなくてもイベントを作成することは可能みたい)

次にイベントを作成する。
まずはDragDropから。

同じ要領でDragEnterにもイベントを作成。
VisualStudioを知っている人なら分かると思うが
各イベントの欄に名前を入れるだけで
勝手に関数を作成、紐づけまで行ってくれる。
便利便利。

さて、作った関数を編集しよう。

上のようなソースを書いてみる。
超おおざっぱに解説すると、
DragEnter(ファイルをつかんでUI上にマウスを移動した)
でイベントを発生させ、そこでDropイベントが起きた際に
ドロップしたファイルをリストで取得するってかんじ。

詳しくはこちら。

と、こちらを

        private void Drop(object sender, DragEventArgs e)
        {
            string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop, false);
            // とりあえずメッセージウィンドウに表示
            MessageBox.Show(fileName[0]);
        }

        private void Drag(object sender, DragEventArgs e)
        {
            // ドラッグされモノがファイル以外は何もしない
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.Copy;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }

ぶっちゃけドボンさんのところが一番分かりやすい(*‘∀‘)

ドボンさんの内容を
参考にさせていただきました!
ありがとうございます!

ふう、他力本願さいこうww

では、早速実行だ!
F5をブっ叩くがよろしい!

上手く動いてますね!
(`・ω・´)

どうやら大丈夫そうです。

という事でした。

あとはこの取得したパスを
煮るなり、焼くなり
好きに加工すればよろしい!

これでファイルのD&Dを忘れなくて済む・・・

一応プロジェクトを
GitHubに挙げておきました~

GitHubはこちら!

以上!

5分で作るドラッグアンドドロップでした~~。


Leave a comment

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください