I did sort of the same thing with a TreeView. You just have to handle the DragDrop, DragEnter, DragLeave, etc. events.