【C# 2010】 テキストへのドラック&ドロップ
VisualStudio C#2010 Express の環境で、テキストボックスにエクスプローラからフォルダを指定(複数)して、ドラック&ドロップすると、そのフォルダのフルパスをテキストボックスへ表示させるアプリケーションを作成しております。
調べながら作成し、フォルダのフルパスをテキストボックスへ表示させられるようになったのですが、わからない点として、複数のフォルダを指定しても、テキストボックスに表示されるのは1フォルダ分のフルパスだけになってしまうという点です。
テキストボックス側のプロパティで、複数行で表示させる設定(Multiline)は有効(True)にしてありますし、ユーザーがドラックしたデータを受け入れるかの設定(AllDrop)も有効にしてあります。
その他、気づいた点として、☆ ドロップイベントの配列(pass)には指定したフォルダ分のフルパスが格納されていますが、textbox1.Text = pass[i] の部分で全てのフルパスがテキストに表示されません。
原因を考えましたが、どうしてもわからなかったので、どなたかお分かりになられる方がいらっしゃい
ましたら、ご教授のほどお願いできますでしょうか?
何卒、よろしくお願いいたします。
-----------------------------------------------------------------------------
public Form1()
{
InitializeComponent();
this.textBox1.DragDrop += new
System.Windows.Forms.DragEventHandler(this.textBox1_DragDrop);
this.textBox1.DragEnter += new
System.Windows.Forms.DragEventHandler(this.textBox1_DragEnter);
}
// ☆ ドラッグイベント
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.All;
else
e.Effect = DragDropEffects.None;
}
// ☆ ドロップイベント
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
string[] pass = (string[])e.Data.GetData(DataFormats.FileDrop, false);
int i;
for (i = 0; i < pass.Length; i++)
{
textBox1.Text = pass[i];
}
}
お礼
教えていただいた通りにやったら、直ぐに出来ました! ありがとうございました。 初めてドラッグ&ドロップ機能を使えました。