Seltsames Drawing Ereignis o.o

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von iluvdemon.

    Seltsames Drawing Ereignis o.o

    Ich habe mich heute das erste Mal mit der Draw-Graphics... Funktion beschäftigt.
    Wie es nicht anders kommen kontte ist mir etwas aufgefallen was ich einfach nicht verstehe.
    Habe folgenden Code:

    VB.NET-Quellcode

    1. Public Class frm1001
    2. Dim stift As New Pen(Color.Red, 2)
    3. Dim pinsel As New SolidBrush(Color.Red)
    4. Private Sub frm1001_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    5. Dim y As Graphics = pbDrawing.CreateGraphics()
    6. y.DrawLine(stift, 100, 40, 100, 60)
    7. End Sub
    8. End Class


    Auf der Formfläche eine Picturebox (pbDrawing) und einen Button (ohne Funktion).

    Wenn ich nun die Anwendung starte dann hab ich ein kleines Strichi auf der Picturebox.
    Wenn ich jedoch den Button lösche und neu starte, dann erschein kein Strich... wie zur Hölle ist das möglich?

    Drawing Problem nr2:
    Ich habe ein anderes Projekt, bei dem beim Starten etwas in eine Picturebox gezeichnet werden sollte.
    Wenn ich es starte wird dies jedoch nicht getan, außer!!! -> ich fahre mit der Maus über einen Button (ohne Funktion!), dann erscheint der Strich plötzlich.

    Ich check das einfach nicht.. *verwirrt*
    Das hat es leider auch nicht gemacht..
    Aber ich bin auf etwas draufgekommen wodurch es dann geklappt hat.

    Allem Anschein nach macht Visual Basic zuerst Form_Load, und dann die picturebox#_paint, der einzelnen Pictureboxen von oben Links nach unten Rechts.

    Man muss also das Zeichnen z.B. einer Linie in ein späterkommendes _paint setzen! d.h. man könnte eigentlich eine Picturebox unten Rechts in der Ecke plazieren und deren _paint dazu verwenden beim Laden der Form in die anderen Pictureboxen reinzuzeichnen..

    Auf jeden Fall danke für die Antwort, hat mich dadurch ans Endergebnis gebracht!


    EDIT: Meinen neuesten Erkenntnissen zu Folge stimmt das auch nicht.. -.-
    ich habe nun folgenden code:

    VB.NET-Quellcode

    1. Dim z As Graphics = picSample.CreateGraphics()
    2. z.DrawLine(New Pen(Color.Black, 5), 3, 25, 34, 6)


    Dieser Funktioniert wenn ich ihn zum beispiel in einen Mouse.click Sub reinsetze.
    Ich bräuchte das aber unbedingt bei Formload.. aber nicht als me.paint, da das ja ewig lang dauert..
    Das bild wäre nur kurz da, bis man auf die picturebox klickt.
    Gäbe es eine Möglichkeit wie man den Sub mit dem handler me.paint killen kann?
    Dann würde er ja das bild so lange anzeigen bis man z.B. auf die Picturebox klickt..

    mfg
    aki

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „iluvdemon“ ()