Form1_Paint wird öfters als 1x aufgerufen

Ich bin mir nicht sicher, aber versuch das ganze mal innerhalb eines Panels zu zeichnen, auf welchem dann natürlich keine Buttons etc. sein dürfen!
 
könntest du das Projekt mal bitte in einer abgespeckten Version hin anhängen? Wenn man das sieht lässt sich vielleicht mehr sagen
 
Würde etwas aufwändiger werden... Es geht kaum was abzuspecken, weil das, was gezeichnet wird, ja das resultierende ist, aus dem, was berechnet wurde. Und alles will ich nicht zum Download hier anbieten.
Die Stelle, wo gezeichnet wird, steht ja oben.
 
Du machst einen Fehler beim Zeichnen auf ein Panel, sodass die Grafik nicht angezeigt wird. Ohne Code kann man dir aber nicht sagen welchen Fehler du machst.

Die Berechnungen sind nicht wichtig, sondern wie oder vielmehr wo du zeichnest!
 
Ja, steht doch oben.
Ich habe lediglich das GrfphicObject gO auf das Panel/Die Paintbox gelenkt (gO = panel1.creategraphics()
 
Code:
Public Class Form1
    Dim go As Graphics

    Private Sub Panel1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
        go = Panel1.CreateGraphics
        go.DrawLine(Pens.Black, 0, 0, 100, 100)
        go.Dispose()
    End Sub

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        go = Me.CreateGraphics
        go.DrawLine(Pens.Black, 0, 0, 100, 100)
        go.Dispose()
    End Sub
End Class

Vorab: In diesem Beispiel ein Grafik Objekt zu erzeugen ist unnötig, soll jetzt aber mal egal sein!

Bei mir funktioniert dieser Code einwandfrei!

Wo liegt da bei dir das Problem? Alles was du auf ein Control zeichnest, solltest du in der jeweiligen Paint-Methode tun.
 
Das zeichnen ist ja auch nicht das Problem, sondern dass, nachdem ein neues Control geladen/initiiert wurde, das Form_Paint-Event neu aufgerufen wird.
Sprich er macht das ganze mehrfach, was bei mir eine nervige sache ist, da es wie gesagt etwas mehr ist, das gezeichnet wird.
 
Aus diesem Grund rate ich dir, wie oben schon gesagt, alles in ein Panel zu zeichnen. Anstatt direkt auf die Form!
 
So, ich habs jetzt hingekriegt, dass das auf nem anderen Controll gezeichnet wird, aber das ändert an dem Problem überhauptnix.
Jetzt baut sich das nicht mehr ständig auf der Form, sondern in der PictureBox auf.

Und um was zum Code zu sagen:
Der Code ist so wie der auf Seite 1. Es wird nur einmal aus einer anderen Methode herraus etwas gezeichnet.
Irgendwelche Dinge, die nicht in Form1 geändert werden, habe ich nicht geändert => sprich standart VS05-Code (z.B. doe programm.cs oder die Designer.cs)
 
Zuletzt bearbeitet:
Zurück