D&DしたPDFファイルをSQL Serverに登録+プレビューする方法の記事の一部になります。
#1. C#:ドラッグ&ドロップの使い方
ファイルのドラッグ&ドロップを受け入れる方法。
(内容は、参考に書いたリンクとほぼ同じです)
##1) UI(デザイン)
##2) コード
- [DragDrop] と [DragEnter] イベントハンドラを実装します。
/// <summary>
/// DragDropのイベントハンドラー
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void pnlDragAndDrop_DragDrop(object sender, DragEventArgs e)
{
// DataFormats.FileDropを与えて、GetDataPresent()メソッドを呼び出す。
var files = (string[])e.Data.GetData(DataFormats.FileDrop, false);
// GetDataの戻り値はstring型の配列であり、
// 複数のファイルがドロップされた場合には
// ドロップされた複数のファイル名が取得できる。
for (int i = 0; i < files.Length; i++) {
// GetDataにより取得したString型の配列から要素を取り出す。
var fileName = files[i];
Console.Write(fileName);
}
}
/// <summary>
/// DragEnterのイベントハンドラー
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void pnlDragAndDrop_DragEnter(object sender, DragEventArgs e)
{
// マウスポインター形状変更
//
// DragDropEffects
// Copy :データがドロップ先にコピーされようとしている状態
// Move :データがドロップ先に移動されようとしている状態
// Scroll:データによってドロップ先でスクロールが開始されようとしている状態、あるいは現在スクロール中である状態
// All :上の3つを組み合わせたもの
// Link :データのリンクがドロップ先に作成されようとしている状態
// None :いかなるデータもドロップ先が受け付けようとしない状態
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}