Autor Beitrag
SSC streezer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

WinXP, Vista Ultimate
C# (VS 05 n' 08), PHP
BeitragVerfasst: Di 04.11.08 09:42 
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
Einloggen, um Attachments anzusehen!
_________________
>> Swiss Soldiers Clan << visit us
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 04.11.08 10:42 
Kurze Antwort: ja.

Gegenfrage: wo liegt jetzt dein konkretes Problem?
SSC streezer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

WinXP, Vista Ultimate
C# (VS 05 n' 08), PHP
BeitragVerfasst: Di 04.11.08 10:45 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Kurze Antwort: ja.

Gegenfrage: wo liegt jetzt dein konkretes Problem?


ich weiss nicht wie die linie zeichnen. ich hab bis jetzt das hier:
ausblenden 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)
        {
            // Get the graphics object
            Graphics gfx = e.Graphics;

            // Create a new pen that we shall use for drawing the line
            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

_________________
>> Swiss Soldiers Clan << visit us
SSC streezer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

WinXP, Vista Ultimate
C# (VS 05 n' 08), PHP
BeitragVerfasst: Di 04.11.08 11:33 
habs rausgekriegt - ich war falsch in der annahme dass es die X koordinaten nicht braucht...

_________________
>> Swiss Soldiers Clan << visit us
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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