ドラッグ&ドロップ

  1. 対象となるオブジェクトのAllowDropプロパティを有効に設定
  2. DragEnterイベントハンドラでファイルの場合にコピー処理
  3. DragDropイベントハンドラでファイルパスを取得
// コンストラクタ
public FormMain()
{
    InitializeComponent();
    // ドロップ許可
    this.AllowDrop = true;

    // 以下、実行ファイルへのドロップ対応
    string[] filepaths = Environment.GetCommandLineArgs();
    // 実行ファイルだけの場合は無処理
    if (filepaths.Length == 1)
        return;
    // 以降ドロップファイルの扱いを記述
    // ~
}

// DragEnter
private void FormMain_DragEnter(object sender, DragEventArgs e)
{
    // ドラッグされたオブジェクトがファイルの場合はコピー
    e.Effect = e.Data.GetDataPresent(DataFormats.FileDrop) ? DragDropEffects.Copy : DragDropEffects.None;
}

// DragDrop
private void FormMain_DragDrop(object sender, DragEventArgs e)
{
    // ドロップしたファイル群を取得
    var filepaths = (string[]) e.Data.GetData(DataFormats.FileDrop, false);
    // 以降ファイルに対しての処理を記述
}

タイトルとURLをコピーしました