Drag & Drop



Per utilizzare la tecnica del Drag & Drop in un programma C# si seguono 3 passi principali.

Come esempio vediamo come fare per effettuare il Drag & Drop tra 2 textbox.

Nella casella che riceverà i dati, dobbiamo impostare la proprietà AllowDrop a True.

Poi, primo passo, gestiamo l’evento MouseDown nella prima casella, quella dove si andranno a prendere i dati:


private void textBox1_MouseDown(object sender, MouseEventArgs e)
{
textBox1.DoDragDrop(textBox1.Text, DragDropEffects.Copy);
}

La funzione DoDragDrop appartiene alla classe Control e come primo paramentro accetta i dati da usare nell’operazione di Drag & Drop, come secondo la modalità con cui dovrà usarli, in questo caso Copy.

Ora passiamo al secondo passo, cioè quando il mouse entra nel secondo TextBox gestito dall’evento DragEnter.
Qui si dovrà controllare che i dati siano di tipo stringa, altrimenti impostare come operazione di Drag & Drop None, per non incorrere in errori.
Esemplifichiamo:


private void textBox2_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.StringFormat))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}

Quindi non ci rimane che il terzo ed ultimo passo, cioè l’effettiva scrittura dei dati nel secondo TextBox:


private void textBox2_DragDrop(object sender, DragEventArgs e)
{
String str = (String) e.Data.GetData(DataFormats.StringFormat);
textBox2.Text = str;
}

Ed il gioco è fatto.
Questo ovviamente è solo il minimo delle potenzialità che il Drag & Drop può offrire, ma come base per esplorare i meandri di questa modalità è abbastanza solida.

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest