0

フォルダをドラッグアンドドロップしてその名前を取得する方法を知りたいのですが。ファイルを使ってそれを行う方法はすでに知っていますが、フォルダをドラッグできるようにファイルを変更する方法がよくわかりません。ファイルがドロップされたときにトリガーされるイベントのコードは次のとおりです。

private void checkedListBox_DragDrop(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        // NB: I'm only interested in the first file, even if there were
        // multiple files dropped
        string fileName = ((string[])e.Data.GetData(DataFormats.FileDrop))[0];
    }
}
4

1 に答える 1

7

パスがフォルダーであるかどうかをテストし、DragEnterハンドラーで条件付きで次を変更できEffectます。

 void Target_DragEnter(object sender, DragEventArgs e)
 {
     DragDropEffects effects = DragDropEffects.None;
     if (e.Data.GetDataPresent(DataFormats.FileDrop))
     {
         var path = ((string[])e.Data.GetData(DataFormats.FileDrop))[0];
         if (Directory.Exists(path))
             effects = DragDropEffects.Copy;
     }

     e.Effect = effects;
 }
于 2012-06-27T15:23:10.277 に答える