[C#] Problem mit Drag&Drop

below

Lieutenant
Registriert
Feb. 2004
Beiträge
635
Hi,

ich muss innerhalb eines Panels Elemente per Drag&Drop verschieben können. Eine Beispielandwendung habe ich angefügt. (VS2005)

Beim Programmstart werden erstmal exemplarisch ein paar Elemente angelegt. Das funktioniert soweit auch super inkl. dem Verschieben der Elemente.

Zusätzlich gibt es noch einen Button, über den man nachträglich Elemente in die Liste aufnehmen kann. Sobald ich das jedoch mache zerschießt es mir die komplette Drag&Drop Ausführung.

Da beides genau die gleiche Methode zum Anzeigen der Elemente benutzt kann ich es mir allerdings absolut nicht mehr erklären.

Vielleicht blickt ja jemand von euch durch wo mein Denkfehler sitzt.

Gruß below
 

Anhänge

Ich vermute, dass das Problem ist, dass du beim Klick auf den Button zu allen bereits vorhandenen Elementen die Eventhandler per += nochmals hinzufügst, d.h. für die alten Elemente werden sie nun mehrfach aufgerufen.

Funktioniert hat's bei mir z.B. so:
PHP:
 private void button1_Click(object sender, EventArgs e)
{
        panel8.Controls.Clear();

        SegmentDescription s = new SegmentDescription(segList.Count + 1, "neues", 33);
        s.MouseDown += MouseDown_Segment;
        s.MouseMove += MouseMove_Segment;
        s.MouseUp += MouseUp_Segment;
            
        segList.Add(s);

        segList.Sort(new SortListByIndex());
        foreach (SegmentDescription seg in segList)
        {
            seg.Location = new Point(0, (seg.Index - 1) * 80);
            panel8.Controls.Add(seg);
        }
}
 
Hi, ja genau das wars. Habs heut morgen auch bemerkt. Thx
 
Zurück
Oben