How do I drag and drop files into an application?

c# drag and drop file to textbox
c# drag and drop files
drag and drop controls in c# windows application
c# drag and drop file upload
visual studio drag and drop gui
wpf drag and drop files
c# drag and drop file path
c# drag drop to another application

I've seen this done in Borland's Turbo C++ environment, but I'm not sure how to go about it for a C# application I'm working on. Are there best practices or gotchas to look out for?

Some sample code:

  public partial class Form1 : Form {
    public Form1() {
      this.AllowDrop = true;
      this.DragEnter += new DragEventHandler(Form1_DragEnter);
      this.DragDrop += new DragEventHandler(Form1_DragDrop);

    void Form1_DragEnter(object sender, DragEventArgs e) {
      if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;

    void Form1_DragDrop(object sender, DragEventArgs e) {
      string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
      foreach (string file in files) Console.WriteLine(file);

How to provide file drag-and-drop functionality in a Visual C# , Describes how to provide file drag-and-drop functionality in a Visual C# application. A ListBox control is used as the destination of the file  To perform a drag-and-drop procedure between applications. Create a new Windows Forms application. Add a TextBox control to your form. Configure the TextBox control to receive dropped data. For more information, see Walkthrough: Performing a Drag-and-Drop Operation in Windows Forms.

Be aware of windows vista/windows 7 security rights - if you are running Visual Studio as administrator, you will not be able to drag files from a non-administrator explorer window into your program when you run it from within visual studio. The drag related events will not even fire! I hope this helps somebody else out there not waste hours of their life...

Using Drag and Drop, You can drag files from a Zip file open in a WinZip window to other applications, a Windows File Explorer window, the desktop, printers and shortcuts. If you drop  Here is something I used to drop files and/or folders full of files. In my case I was filtering for *.dwg files only and chose to include all subfolders.. fileList is an IEnumerable or similar In my case was bound to a WPF control…

In Windows Forms, set the control's AllowDrop property, then listen for DragEnter event and DragDrop event.

When the DragEnter event fires, set the argument's AllowedEffect to something other than none (e.g. e.Effect = DragDropEffects.Move).

When the DragDrop event fires, you'll get a list of strings. Each string is the full path to the file being dropped.

Implementing Drag and Drop in Your Windows Application, A very common operation performed in a Windows application is dragging and dropping files onto applications. For example, you drag and drop files onto folders  The user will then drag the selected files kept on the desktop, on to the running application form. The contents of all the text files will then be displayed in the application. To complete the operation, the following events need to be handled. Form DragEnter Event – this event will be handled when the file is dragged into the Form’s bounds.

You need to be aware of a gotcha. Any class that you pass around as the DataObject in the drag/drop operation has to be Serializable. So if you try and pass an object, and it is not working, ensure it can be serialized as that is almost certainly the problem. This has caught me out a couple of times!

Drag and Drop File on Windows Forms, Dialog to open a file. Create a project of type “Windows Forms Application”: On form add a textbox and a button like this: Click twice on button  In this example, you just add the full path to the files that are dragged to the ListBox control. To provide file drag-and-drop functionality in a Visual C# application, follow these steps: Create a new Windows Forms application in Visual C# .NET or Visual C# 2005. Form1 is created by default. Use the toolbox to add a ListBox control to Form1.

Yet another gotcha:

The framework code that calls the Drag-events swallow all exceptions. You might think your event code is running smoothly, while it is gushing exceptions all over the place. You can't see them because the framework steals them.

That's why I always put a try/catch in these event handlers, just so I know if they throw any exceptions. I usually put a Debugger.Break(); in the catch part.

Before release, after testing, if everything seems to behave, I remove or replace these with real exception handling.

Drag and Drop File into Application under run as administrator , The problem is tied to how security permissions work. The ability to drag and drop from a normal applications to an elevated one would break the security model  This post shows you how to drag and drop text files into a RichTextBox in C# Windows Forms Application. To create a simple demo in c# drag and drop text within a RichTextBox , you can drag the RichTextBox control from the visual studio toolbox to your winform as shown below.

How to Copy or Move Files and Folders in Windows 10, That lets you drag and drop a file into a spot on the Navigation Pane, sparing you the hassle of opening a destination folder. After you install a program on your  To drag the file, one needs to click on the file and drag it to the preferred location without any additional moves. However, through the past couple of years, thousands or rather tens of thousands of Windows 10 users [1] encountered an issue when Drag and Drop function fails to work.

How to "Drag and Drop" a file in Windows 7, There are a couple ways of dragging and dropping folders into Sync: ​ ​1. If you don't have the Sync desktop app installed you can also drag and drop Now drag a folder from the Windows File Explorer or Mac Finder directly into the file  @Burnsys if you have the filepath from the drag operation, then you can read using io.File – Smith May 24 '13 at 23:51 1 Ugh, no. Set the AllowDrop property to True in the designer and reason it out from there.

How to drag and drop folders, Drag and drop files into the Dropbox folder on your desktop. Or, use the Save As..​. menu option in most applications to save files directly to your Dropbox folder.

  • Do you mean drag and drop in a C# Application or into the C# IDE?
  • Of cource, C# Application. He want to make his application drag&drop friendly.
  • More useful answers at link.
  • Disclaimer : it may not work in debug if you run Visual Studio as an admin in Windows 7, or if you run your program as an admin. See here
  • How do you get the contents of the files?
  • @Burnsys if you have the filepath from the drag operation, then you can read using io.File
  • Ugh, no. Set the AllowDrop property to True in the designer and reason it out from there.
  • Is the (string[]) cast safe for any FileDrop-formatted drop? That is, is it possible to generate a FileDrop that will cause an illegal cast exception to string[]? I'm having trouble figuring that out from the docs.
  • @Wayne Uroda: I thought my code wasn't working - heck it was giving me a big "No symbol" like this . Then I saw this answer and ran VS as a non-admin and presto it works! Thanks a million.
  • Can't thank you enough for this, I would have given up unless I happened to find this post! It's as valid in Windows 10 in 2017 as it was when you wrote it.