人気ブログランキング | 話題のタグを見る
(.Net)エクスプローラからのファイルドラッグを受け入れる
.Net のコントロールエクスプローラからのファイルのドラッグアンドドロップを受け入れ、ファイルのパスを取得するための方法です。

MS:Visual C# アプリケーションにファイルのドラッグ アンド ドロップ機能を提供する方法に書いてる内容そのままですが、参考までに。。。

ソースは下記のようになります。
/// <summary>
/// DragEnterイベントハンドラ ドラッグされたデータがコントロール内入ったとき。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lblDrag_DragEnter(object sender, DragEventArgs e)
{
//ドラッグのデータがファイルなら、エフェクトを表示する
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.All;
}
else
{
//Noneだとドラッグデータを受け入れない
e.Effect = DragDropEffects.None;
}
}
/// <summary>
/// DragDropイベントハンドラ ドロップされた時
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lblDrag_DragDrop(object sender, DragEventArgs e){
//ファイルパス取得
string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
MessageBox.Show(s[0]);
}

まず、ドラッグを受け入れる .Net のコントロールの AllowDrop プロパティを True にします。

次に、ドラッグを受け入れるコントロールの DragEnter イベントハンドラを実装し、ドラッグされたDataがファイルならマウスカーソルのエフェクトを変更します。

そして、ドラッグを受け入れるコントロールの DragDrop イベントハンドラを実装し、ファイルパスを取得します。
DragDrop イベントハンドラの DragEventArgs にドロップされたデータが入るので、そこから Data.GetData メソッドを使ってパスを取得します。
by jehoshaphat | 2010-08-19 23:33 | .Net開発


<< (Excel,Calc)符号を... NOD32(EsetSmart... >>