读书人

拖动文件到文本框怎么得到路径

发布时间: 2012-03-19 22:03:04 作者: rapoo

拖动文件到文本框,如何得到路径?
如题,现在有一个文本框,TextBox1,allowdrop设置为true,未做其他设置,怎么才能让一个文件拖到上面就显示这个文件的路径(最好绝对路径)呢??翻书没翻到。

[解决办法]
设置textBox1的DragEnter和DragDrop事件,然后在事件里这么填就行。

C# code
        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[] files = (String[])e.Data.GetData(DataFormats.FileDrop, false);            if (files.Length > 0)            {                textBox1.Text = files[0];            }        }
[解决办法]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

this.textBox1.Multiline = true;
this.textBox1.AllowDrop = true;
this.textBox1.DragDrop+=new DragEventHandler(textBox1_DragDrop);
this.textBox1.DragEnter+=new DragEventHandler(textBox1_DragEnter);
}

protected void textBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
IDataObject dataObject = e.Data;
if (dataObject.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
}

protected void textBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{

IDataObject dataObject = e.Data;

if (dataObject == null) return;

if (dataObject.GetDataPresent(DataFormats.FileDrop))
{
string[] files = (string[])dataObject.GetData(DataFormats.FileDrop);

foreach (string file in files)
{
System.IO.FileInfo fi = new System.IO.FileInfo(file);
this.textBox1.Text += "文件名:" + fi.Name;

}

}
}

}

读书人网 >C#

热点推荐