<p>I've seen this done in Borland's <a href="https://en.wikipedia.org/wiki/Turbo_C++" rel="noreferrer">Turbo C++</a> 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?</p>

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.