Drag and Drop

di il
4 risposte

Drag and Drop

Ciao a tutti,
mi trovo in difficoltà nel fare il Drag and Drop di una PictureBox su una form. Il codice che ho impostato al momento è il seguente, in cui Drag_Enter è impostato sia nella proprietà DragEnter che in DragOver della form:

private void PictureBox_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
((PictureBox)sender).DoDragDrop(sender,DragDropEffects.Move);
}

private void Drag_Enter(object sender, System.Windows.Forms.DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}

Cosa devo fare nell'evento drop?
Usando il move mi sarei aspettata che l'oggetto fosse spostato in modo automatico, invece non accade così. Tutti gli esempi che ho trovato sono fatti su delle list box in cui per lo spostamento viene aggiunto un item, ma nel mio caso non devo aggiungere nulla devo solo spostare la picturebox...

Ringrazio chiunque possa essermi di aiuto
Ciao


sili

4 Risposte

  • Re: Drag and Drop

    Il tuo topic è del 2004,...da allora nessuno ti ha risposto,questo mi preoccupa.Ho il tuo stesso problema.
    Devo realizzare un progetto che implementi il gioco della torre di Hanoi.
    Ho problemi sull'interfaccia grafica.Devo riuscire a trascinare un'immagine da una Picture Box ad un'altra picture box.E' da un bel po che ci sbatto la testa ma non ne vengo a capo.

    Se sai come si risolve ti sarei grato se mi dassi una risposta.
  • Re: Drag and Drop

    Se non ho capito male, devi spostare un immagine in una form.

    Gli eventi di drag and drop se non li devi usare tra oggetti che lo supportano (listview ecc) non ti servono.

    La mia soluzione é la seguente implementa i seguenti metodi sulla pictureBox:

    private void pictureBox1_MouseDown
    private void pictureBox1_MouseUp
    private void pictureBox1_MouseEnter

    Ciao, Andrea
    Fammi sapere se è ok se no ti mando la SLN in C# via mail

    P.S. Per il drag and drop guarda qua:

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskstartingdragoperations.asp

    Seguono i gestori eventi in c#:

    private void pictureBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if (e.Button==MouseButtons.Left)
    {
    mousePress=true;
    }
    }

    private void pictureBox1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if (mousePress)
    {
    this.pictureBox1.Location=new Point((MousePosition.X-this.Location.X-24),(MousePosition.Y-this.Location.Y-48));
    }
    }

    private void pictureBox1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    mousePress=false;
    }

    mailto:
  • Re: Drag and Drop

    Dimenticavo mousepress è naturalmente un bool privato dichiarato nella classe e con valore impostato a false nel costruttore:

    private bool mousepress;

    mailto:

  • Re: Drag and Drop

    Grazie per i suggerimenti...sono stato un po assente da questo forum in questi giorni,...grazie comunque.
    Problema risolto.
Devi accedere o registrarti per scrivere nel forum
4 risposte