7

How do i drag files or folders into a textbox? i want to put the foldername in that very textbox. C# .NET

5 Answers5

18

i wrote this code based in this link

  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;
    }
  }
vidstige
  • 12,492
  • 9
  • 66
  • 110
RRUZ
  • 134,889
  • 20
  • 356
  • 483
5

Set AllowDrop to true on your TextBox, and write the following code for the DragDrop and DragEnter events :

    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;
        }
    }
Thomas Levesque
  • 286,951
  • 70
  • 623
  • 758
1

CodeProject has a really nice example of doing this, including how to enable drag and drop both ways (from Explorer to your app, and from your app to Explorer).

Daniel Pryden
  • 59,486
  • 16
  • 97
  • 135
0

Control has various events for dealing with drag/drop - you'll probably only need to look at the DragDrop event for what you want.

Lee
  • 142,018
  • 20
  • 234
  • 287
0

If you get the Error Messages below, This applied to me when using Visual Studio 2015, try e.Effect instead of e.Effects

Severity Code Description Project File Line Suppression State Error CS1061 'DragEventArgs' does not contain a definition for 'Effects' and no extension method 'Effects' accepting a first argument of type 'DragEventArgs' could be found (are you missing a using directive or an assembly reference?)