Autor Beitrag
sailer86
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Di 08.04.08 10:46 
Hi,

ich bräuchte mal Hilfe. Ich habe habe einen toolstrip auf dem ein button mit dem namen toolstripbutton1 liegt. Jetzt will ich den Button anklicken und dann ein Objekt der Klasse station per drag&drop auf ein Panel setzen. Die Klasse station erstellt ein einfaches Rechteck.
Also sobald ich auf das Panel, mit gedrückter linker Maustaste komme, soll ein Rechteck erscheinen und wenn ich es loslassen soll es dort abgelegt werden wo meine Maus ist. Ich will aber das das Rechteck nochmals angeklickt werden kann und nochmal verschoben werden kann.

Bis jetzt habe ich folgenden Code.
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
 private void toolStripButton1_Click(object sender, EventArgs e)
        {

            toolStripButton1.DragEnter += new DragEventHandler(anlageplan_DragEnter);
            toolStripButton1.DragDrop += new DragEventHandler(anlageplan_DragDrop);
            toolStripButton1.MouseDown += new MouseEventHandler(geraetStation_MouseDown);
            splitContainer1.Panel1.DragEnter += new DragEventHandler(anlageplan_DragEnter);
            splitContainer1.Panel1.DragDrop += new DragEventHandler(anlageplan_DragDrop);
            splitContainer1.Panel1.MouseDown += new MouseEventHandler(geraetStation_MouseDown);  
 
        }
        

        //Drag und Drop des Buttons

        public void geraetStation_MouseDown(object sender, MouseEventArgs e)
        {
            this.DoDragDrop(new DataObject(), DragDropEffects.Copy | DragDropEffects.Move);

        }
        //tritt das objekt in den anlageplan ein soll eine station angezeigt werden
        public void anlageplan_DragEnter(object sender, DragEventArgs e)
        {
            if ((e.KeyState & 8) == 8)
                e.Effect = DragDropEffects.Copy;

            else
                e.Effect = DragDropEffects.Move;

        }
        //sobald die Maus losgelassen wird
        public void anlageplan_DragDrop(object sender, DragEventArgs e)
        {
                 
            Point mousepoint = stationneu.PointToClient(new Point(e.X, e.Y));
            station stationneu = new station();

            this.splitContainer1.Panel1.Controls.Add(stationneu);
        }


Irgendwie funktioniert das aber nicht. Hat jemand eine Idee was ich machen muss?

LG
sailer