DOBON.NET DOBON.NETプログラミング掲示板過去ログ

TextBoxにフォルダをdrag&dropし、パスを取得

環境/言語:[Visual studio C#.NET 2003]
分類:[.NET]

初投稿です。よろしくお願いいたします。

C#を使用してWindowsアプリケーションを作っています。

テキストボックスにフォルダをdarg&dropし、ルートからそのフォルダまでの
絶対パスを表示させるようにしたいのですが、方法が分かりません。
ファイルの場合は上手くいくのですが・・・

もしよろしければご教授お願いします。
> ファイルの場合は上手くいくのですが・・・

うまくいく場合のソースコードを載せてみてもらえませんか?
すみません、自己解決しました。
すぐにご返事いただきましてありがとうございました。

private void path1TextBox_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}

private void path1TextBox_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
TextBox textBox = (TextBox)sender;
textBox.Clear();

// ドロップされた情報からファイルパスをゲット
foreach (string strFileName in (string[])e.Data.GetData(DataFormats.FileDrop))
{
// ファイルパスからファイル情報をゲット
FileInfo fi = new FileInfo(strFileName);

// ファイルパス + (サイズ) の文字列をテキストボックスに追加
path1TextBox.Text = strFileName;
}

このコードで出来ました。
もし気になる部分などありましたら、ぜひご教授願いたいです。
DragEnter の部分をこうしてみてはどうでしょうか。
(ファイルのドロップ以外は受け付けない)

private void path1TextBox_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop) == true)
    {
      e.Effect = DragDropEffects.All;
    }
    else
    {
      e.Effect = DragDropEffects.None;
    }
}
すでにお気づきかとは思いますが(別の投稿でお名前が「ぶんぶん(初心者)」さんに変わっているようなので)、形式的に指摘させていただきます。

「書き込みのマナーについて」に書かれているように、この掲示板では匿名での投稿は禁止されています。「初心者」や「通りすがり」のようなお名前も匿名とみなされます。なぜ匿名での投稿が禁止されているかについては、「書き込みのマナーについて」をご覧ください。面倒だとは思いますが、今後は「書き込みのマナーについて」をご一読いただき、ご理解のうえ、ご投稿ください。もしこのルールを守りたくないならば、「お気楽掲示板」へご投稿ください。ご協力をお願いいたします。

書き込みのマナーについて
http://dobon.net/vb/bbs/index.html
>>ぽぴ王子さん
ありがとうございます。早速修正しました。

>>管理人さん
申し訳ございませんでした。なぜか名前の部分だけ読み飛ばしていたようです。
次からは気をつけますのでご容赦ください。
ご指摘ありがとうございました。

DOBON.NET | プログラミング道 | プログラミング掲示板