Cuestión : ¿Usar dragdrop, cómo al color del "RESET" de una etiqueta cuando el ratón se va y de la gota no ha ocurrido?


Para crear un ejemplo simple:
1. Comenzar un nuevo proyecto de WinForms nombrado TEST DragDrop.
2. En Form1, utilizar la caja de herramientas:
   - Agregar label1 y las características del sistema a AllowDrop.
   - Agregar label2 y las características del sistema a AllowDrop.
   - Agregar richTextBox1 y las características del sistema a EnableAutoDragDrop.
3. Modificar el código en Form1 para parecer esto:
        público Form1 ()
        {
            InitializeComponent ();
        }

        AnyLabel_DragEnter vacío privado (remitente del objeto, DragEventArgs e)
        {
            remitente de //Get
            Lbl de la etiqueta = remitente (de la etiqueta);
            lbl.BackColor = Color.Green;

            si (e.Data.GetDataPresent (DataFormats.Text))
               e.Effect = DragDropEffects.Copy;
           
               e.Effect = DragDropEffects.None;
        }

        AnyLabel_DragDrop vacío privado (remitente del objeto, DragEventArgs e)
        {
            secuencia de texto del remitente y del parte movible de //Get
            Lbl de la etiqueta = remitente (de la etiqueta);
            lbl. Texto = (secuencia) e.Data.GetData (DataFormats.Text, falsos);
        }
    }
4. En características, para los acontecimientos de cada tecleo de la etiqueta y:
   - Para DragEnter, AnyLabel_DragEnter selecto
   - Para DragDrop, AnyLabel_DragDrop selecto

5. Compilar y funcionar. Mecanografiar un poco de texto en el textbox, seleccionar el texto, y arrastrar el texto a label1 y continuar arrastrando a label2. Caer el texto en label2.

COMENTARIOS: El problema es que cuando la gota no se lanza y el ratón sale de label1, el BackColor debe reajustar al normal. Entonces el ratón podría viajar hacia adelante y hacia atrás entre cada etiqueta (que demuestra verde del “verde” entonces “no”) hasta que se lance la gota.

Respuesta : ¿Usar dragdrop, cómo al color del "RESET" de una etiqueta cuando el ratón se va y de la gota no ha ocurrido?


Dirigir DragLeave para la etiqueta y en ese tratante fijar el color trasero de nuevo al defecto como:

AnyLabel_DragLeave vacío privado (remitente del objeto, EventArgs e)
        {
            Lbl de la etiqueta = remitente (de la etiqueta);
            lbl.BackColor = defaultLabelBackColor;
        }
Otras soluciones  
 
programming4us programming4us