Entwickler-Ecke
WinForms - OnPaint Ereignis auf Panel
SSC streezer - Di 04.11.08 09:42
Titel: OnPaint Ereignis auf Panel
hallo zusammen,
ich bin gerade am Versuch eine kleine Applikation zu schreiben die es ermöglicht vom linken tree zum rechten tree XML files to drag and drop'en...
das funzt auch soweit schon.
wobei ich jetzt aber eure Hilfe brauche ist das Paint Ereignis auf dem Panel in der Mitte.
es soll beim loslassen des xmls auf den rechten tree eine linie zeichnen vom quell ort zum ziel ort. im anhang hab ich das mal mit Paint hingezeichnet - aber das tool soll dies ja selbst malen ;)
weiss da jemand was dazu?
gruss,
mike
Th69 - Di 04.11.08 10:42
Kurze Antwort: ja.
Gegenfrage: wo liegt jetzt dein konkretes Problem?
SSC streezer - Di 04.11.08 10:45
Th69 hat folgendes geschrieben : |
Kurze Antwort: ja.
Gegenfrage: wo liegt jetzt dein konkretes Problem? |
ich weiss nicht wie die linie zeichnen. ich hab bis jetzt das hier:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| private void splitContainer2_Panel1_Paint(object sender, PaintEventArgs e) { Graphics gfx = e.Graphics;
Pen myPen = new Pen(Color.Red, 5);
Point p1 = new Point(); p1.Y = m_NodePositionLinks;
Point p2 = new Point(); p2.Y = m_NodePositionRechts;
gfx.DrawLine(myPen, p1, p2);
GraphicList.Add(gfx); } |
dies ergibt nur eine vertikale linie... und nur immmer eine - wenn ich ein neuen drag n drop mache löscht es die alte linie. des wegen leg ich das ganze auch in einen array ab.
ich nehm an dass ich den inhalt des arrays nach jedem drop wieder in das panel lesen muss oder? but: wie mache ich das? im onchange ereignis des panels?
gruss,
mike
SSC streezer - Di 04.11.08 11:33
habs rausgekriegt - ich war falsch in der annahme dass es die X koordinaten nicht braucht...
Th69 - Di 04.11.08 12:19
Da ist aber noch einiges zu tun bei deinem Code:
- benutze für die grafischen Objekte (Pen, Brush etc.) immer "using(Pen p = new Pen(...))" damit automatisch ein Dispose ausgeführt wird
- in dem Array mußt du die Koordinaten speichern, nicht das grafische Objekt
- das Array mußt du außerhalb füllen (beim Drag&Drop)
- im Paint-Ereignis dann einfach alle Linien des Arrays zeichnen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!