Tengo un problema al arrastrar un archivo desde el Explorador de Windows a una aplicación de Windows Forms.Arrastrar y soltar desde Windows File Explorer a Windows Form no funciona
Funciona bien cuando arrastro texto, pero por alguna razón no reconoce el archivo. Aquí está mi código de prueba:
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_DragDrop(object sender, DragEventArgs e)
{
}
private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Copy;
}
else if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
}
}
AllowDrop se establece en true en Form1, y como he mencionado, funciona si arrastro texto en la forma, pero no un archivo real.
Estoy usando Vista de 64 bits ... no estoy seguro si eso es parte del problema.
Bueno, eso responde a un problema que he tenido con la aplicación en la que he estado trabajando. Una buena solución que encontré que le permite depurar la aplicación y aún tener el trabajo de arrastrar y soltar correctamente es ejecutar la aplicación fuera del depurador y luego adjuntar el depurador al proceso. – RobH
En los casos en que no necesita Visual Studio para ejecutar elevado, también puede simplemente ejecutarlo en modo normal para probar la acción de arrastrar. Sin embargo, sugeriría instalar VSCommands. Es una extensión que le permite ejecutar una ventana del explorador como administrador, así como algunas otras cosas interesantes, como la selección automática de las instancias de IIS relacionadas para adjuntarlas a la depuración, entre otras cosas. –