拖动文本框中的文件或文件夹? C#

如何将文件或文件夹拖到文本框中? 我想把foldername放在那个文本框中。 C#.NET

我在此链接中编写了此代码

public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { textBox1.AllowDrop = true; textBox1.DragEnter += new DragEventHandler(textBox1_DragEnter); textBox1.DragDrop += new DragEventHandler(textBox1_DragDrop); } private void textBox1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effects = DragDropEffects.Copy; else e.Effects = DragDropEffects.None; } private void textBox1_DragDrop(object sender, DragEventArgs e) { string[] FileList = (string[])e.Data.GetData(DataFormats.FileDrop, false); string s=""; foreach (string File in FileList) s = s+ " "+ File ; textBox1.Text = s; } } 

在TextBox上将AllowDrop设置为true,并为DragDrop和DragEnter事件编写以下代码:

  private void textBox1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { e.Effect = DragDropEffects.Copy; } } private void textBox1_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { string[] fileNames = (string[])e.Data.GetData(DataFormats.FileDrop); textBox1.Lines = fileNames; } } 

CodeProject有一个非常好的例子 ,包括如何同时启用拖放(从资源管理器到你的应用程序,从你的应用程序到资源管理器)。

Control有各种各样的事件来处理拖放 – 你可能只需要看看你想要的DragDrop事件。

如果您收到以下错误消息,这在使用Visual Studio 2015时适用于我,请尝试e.Effect而不是e.Effects

严重级代码描述项目文件行抑制状态错误CS1061’DragEventArgs’不包含’Effects’的定义,也没有扩展方法’Effects’可以找到接受类型’DragEventArgs’的第一个参数(你是否缺少using指令或assembly参考?)