Questione : Using dragdrop, come a colore di "RESET" di un'etichetta quando il mouse va e di una goccia non si è presentato?


Per per generare un esempio semplice:
1. Cominciare un nuovo progetto WinForms chiamato TEST DragDrop.
2. Su Form1, utilizzare la cassetta portautensili:
   - Aggiungere label1 e le proprietà dell'insieme a AllowDrop.
   - Aggiungere label2 e le proprietà dell'insieme a AllowDrop.
   - Aggiungere richTextBox1 e le proprietà dell'insieme a EnableAutoDragDrop.
3. Modificare il codice in Form1 per assomigliare a questo:
        pubblico Form1 ()
        {
            InitializeComponent ();
        }

        AnyLabel_DragEnter vuoto riservato (mittente dell'oggetto, DragEventArgs e)
        {
            mittente di //Get
            Lbl dell'etichetta = mittente (dell'etichetta);
            lbl.BackColor = Color.Green;

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

        AnyLabel_DragDrop vuoto riservato (mittente dell'oggetto, DragEventArgs e)
        {
            stringa di testo del mittente e dell'inserto di //Get
            Lbl dell'etichetta = mittente (dell'etichetta);
            lbl. Testo = (stringa) e.Data.GetData (DataFormats.Text, falsi);
        }
    }
4. Nelle proprietà, per gli eventi di ogni scatto dell'etichetta e:
   - Per DragEnter, AnyLabel_DragEnter prescelto
   - Per DragDrop, AnyLabel_DragDrop prescelto

5. Compilare e funzionare. Scriv un certo testo a macchina nella casella di testo, selezionare il testo e trascinare il testo a label1 e continuare a trascinare a label2. Cadere il testo su label2.

OSSERVAZIONI: Il problema è che quando la goccia non è liberata ed il mouse lascia label1, il BackColor dovrebbe ripristinarsi al normale. Allora il mouse potrebbe viaggiare avanti e indietro fra ogni etichetta (che mostra verde “di verde„ allora “non„) fino a liberare la goccia.

Risposta : Using dragdrop, come a colore di "RESET" di un'etichetta quando il mouse va e di una goccia non si è presentato?


Trattare DragLeave per l'etichetta ed in quell'alimentatore fissare il colore posteriore di nuovo al difetto come:

AnyLabel_DragLeave vuoto riservato (mittente dell'oggetto, EventArgs e)
        {
            Lbl dell'etichetta = mittente (dell'etichetta);
            lbl.BackColor = defaultLabelBackColor;
        }
Altre soluzioni  
 
programming4us programming4us