Im Panel zeichnen



  • Hallo 🙂

    Ich habe eine Frage. Ich versuche mich gerade daran ein wenig zu zeichnen. Mit dem unten aufgelisteten Code klappt das in der Form1 auch wunderbar.

    Jetzt würde ich diese aber gerne in einzelne Panels (Container) unterteilen. Nur jetzt wird die Linie durch die Panels überdeckt. Ich schaffe es nicht die Linie in den Vordergrund zu rücken. BringToFront() hab ich versucht und auch die Linie direkt im Panel zu zeichnen. Aber beides hat nicht funktioniert. Hat jemand eine Idee?

    Ich bin für jeden Ratschlag dankbar 🙂

    System::Drawing::Pen^ kurve = gcnew System::Drawing::Pen(System::Drawing::Color::Red);
    System::Drawing::Graphics^ formGraphics;
    formGraphics = this->CreateGraphics();
    kurve->Width=4.0F;

    array<Point> ^punkte = gcnew array<Point>(100);

    for (int i=0; i< 100; i++) {
    Point point21 = Point(62+i,337-i); //x-Achse,y-Achse
    punkte[i]=point21;
    }
    formGraphics->DrawLines( kurve, punkte );



  • Das Paint Erreignis vom Panel behandeln und dort zeichnen.
    http://msdn2.microsoft.com/de-de/library/system.windows.forms.control.paint(VS.80).aspx



  • ich erhalte lediglich die Fehlermeldung, dass

    error C2039: 'Graphics' : is not a member of 'System::EventArgs'

    ist. Und ich würde doch einfach nur gerne im Panel zeichnen können.....



  • Warum auch immer das vorhin nicht laufen wollte. Hier der Code für die Mitleser (wie mich).

    private: System::Void panel2_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
    Graphics^ g = e->Graphics;
    System::Drawing::Brushes::Blue, Point(30,30) );
    System::Drawing::Pen^ kurve = gcnew System::Drawing::Pen(System::Drawing::Color::Red);
    kurve->Width=4.0F;
    array<Point> ^punkte = gcnew array<Point>(40);
    for (int i=0; i< 40; i++) {
    Point point21 = Point(77+i,200-i);
    punkte[i]=point21;
    }
    g->DrawLines( kurve, punkte );
    }
    }


Anmelden zum Antworten