Me pregunto si hace alguna diferencia en qué control llamo el método DoDragDrop en una aplicación de Windows Forms.¿Importa a qué control llama el método DoDragDrop?
Tengo un formulario con dos controles PictureBox. Uno puede arrastrarse y el otro tiene su propiedad AllowsDrop establecida en verdadero.
El controlador de eventos MouseDown para el cuadro de imagen que pueden arrastrarse, es el siguiente:
private void dragPictureBox_MouseDown(object sender, MouseEventArgs e)
{
if (sender is PictureBox)
{
var pictureBox = (PictureBox) sender;
var effect = pictureBox.DoDragDrop(
pictureBox.Image, DragDropEffects.All);
MessageBox.Show("Drag ended in a " + effect);
}
}
Pero en lugar de llamar a DoDragDrop en el cuadro de imagen, me parece que puedo usar ningún tipo de control, por ejemplo el propio formulario
var effect = this.DoDragDrop(pictureBox.Image, DragDropEffects.All);
o incluso
var effect = label1.DoDragDrop(pictureBox.Image, DragDropEffects.All);
¿Sería otra differe ¿En qué control llamo al método DoDragDrop? Y si es así, ¿cuál es la diferencia?
Tienes toda la razón. Lo mismo vale para el evento GiveFeedback. Curiosamente, ambos eventos continúan ocurriendo durante la operación de arrastre, aunque la documentación indica que solo ocurre cuando hay un cambio en el estado del botón del teclado o del mouse. – comecme