C_sharp / ProgTips / DragDrop



概要

  • Windowsフォームにドラッグアンドドロップを行い、ドロップされたファイル(複数ファイルも可)を表示する。
  • ドロップ処理対象コントロールはここではフォームだが、一般的なコントロール(リストビューとか)も可能なはず。

手順

  • AllowDrop?
    • はじめにコントロールのプロパティ「AllowDrop?」を「True」にしておくこと
  • イベントハンドラは以下のものを追加
    • DragDrop?
    • DragEnter?
  • DragDrop?イベントハンドラ関数のコード
    private void Form1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
    	string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
    	System.Diagnostics.Debug.WriteLine("files.Length = " + files.Length);
    	for(int i=0; i<files.Length; i++)
    	{
    		System.Diagnostics.Debug.WriteLine(files[i]);
    	}
    }
  • DragEnter?イベントハンドラ関数のコード
    private void Form1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
    {
    	if( e.Data.GetDataPresent(DataFormats.FileDrop) ) 
    	{
    		e.Effect = DragDropEffects.Copy;
    	}
    	else
    	{
    		e.Effect = DragDropEffects.None;
    	}
    }

備考

  • イベントハンドラはDragDrop?だけでいいような気がするがDragEnter?でエフェクトをかえてやらないとDragDrop?へイベントが来ない。

MenuBar


最新の20件

2015-05-15 2014-12-07 2008-11-17 2007-08-30 2007-04-21 2007-03-13 2007-03-12 2007-02-20 2007-02-14 2007-02-04 2006-11-26 2006-11-23 2006-11-20 2006-11-18 2006-11-13

  • counter: 468
  • today: 1
  • yesterday: 0
  • online: 1