In dynamisch erzeugte PictureBox zeichnen funkt irgendwie nicht

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    In dynamisch erzeugte PictureBox zeichnen funkt irgendwie nicht

    Liebe Mitglieder,

    ich habe eine Picturebox dynamisch erzeugt und versuche darin zu zeichnen.
    Es macht das Steuerelement - zeigt es auch an. Aber alles was ich hineinzeichnen versuche scheint ins Leere zu gehen. Habe ich einen dummen Denkfehler oder funktioniert das einfach nicht.


    VB.NET-Quellcode

    1. Private Sub DrawSchneemann(ByVal x1 As Integer, ByVal y1 As Integer)
    2. Dim dynBox As System.Windows.Forms.PictureBox
    3. Dim Zeichenfläche As Graphics
    4. dynBox = New System.Windows.Forms.PictureBox()
    5. dynBox.BackColor = Color.CadetBlue
    6. dynBox.Location = New Point(x1, y1)
    7. dynBox.Size = New Size(100, 100)
    8. dynBox.Name = "Schneemann"
    9. dynBox.Visible = True
    10. Zeichenfläche = dynBox.CreateGraphics()
    11. Zeichenfläche.Clear(Color.White)
    12. Zeichenfläche.DrawRectangle(Pens.Red, 0, 90, 100, 10)
    13. Zeichenfläche.DrawLine(Pens.Black, 0, 0, 100, 100)
    14. Zeichenfläche.Clear(Color.White)
    15. Zeichenfläche.DrawRectangle(Pens.Red, 0, 90, 100, 10)
    16. Zeichenfläche.DrawLine(Pens.Black, 0, 0, 100, 100)
    17. Me.Controls.Add(dynBox)
    18. End Sub


    Wenn mir da irgendjemand weiterhelfen könnte wäre ich sehr dankbar....

    LG
    JK
    Ich habe 2 Überlegungen:
    - PictureBox.Invalidate
    - PictureBox zuvor adden und dann zum Schluss Invalidate
    ~ Alex-Digital :D

    if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D

    kainzjo1 schrieb:

    Aber alles was ich hineinzeichnen versuche
    mit welchem Code?
    Hat die Box einen Paint-Eventhandler?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Warum nicht ein Pannel verwenden, ist doch viel einfach. Und dass Pannel hat auf jeden Fall ein Paint befehl.
    hat es nicht - es ist ein Paint-Event.

    @TE: Zum Zeichnen musst du das Konzept von OwnerDrawing in .Net verstehen, sonst kannst du nicht zeichnen.
    .CreateGraphics ist das falscheste was du machen kannst.

    Hier habe ich das erklärt mit dem OwnerDrawing und ist auch SampleProjekt dabei: activevb.de/cgi-bin/tippupload…ype=net&id=18&sid=0%0D%0A