michelle michelle - 7 months ago 98
C# Question

drag and drop file into textbox

I want to drag and drop a file so that the textbox shows the full file path. I have used the drag enter and drag drop events but I find that they are not entering the events.

private void sslCertField_DragDrop(object sender, DragEventArgs e)
if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)
e.Effect = DragDropEffects.All;

private void sslCertField_DragEnter(object sender, DragEventArgs e)
string file = (string)e.Data.GetData(DataFormats.FileDrop);
serverURLField.Text = file;

Can anyone point out what I am doing wrong?

UPDATE: Does not work if program is set to run with elevated permissions (vista/win 7)

max max

Check the AllowDrop property of your textbox - it should be set to true. Also, convert drag-drop data to string[] in case of DataFormats.FileDrop, not just string:

string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
if(files != null && files.Length != 0)
    serverURLField.Text = files[0];

And I think you should swap code in your drag event handlers - usually you show user that drag-drop is possible in DragEnter and perform actual operation on DragDrop.