Hallo zusammen, ich hoffe auf Eure Hilfe, da ich nur gelegentlich mit VB.NET kleine Projekt mache, bei denen ich dann auch immer wieder meine Grenzen erreiche. Hier also das aktuelle Problem:
Ich möchte in einer PictureBox, die in einer Form angedockt ist ein Diagramm zeichnen. Bei Größenänderung der Form soll auch das Diagramm angepasst werden. Prinzipiell funktioniert das, jedoch muss zum neuzeichnen des Diagramms die Form erst vom Bildschirm verschwunden sein. Warum wird die nicht automatisch neu gezeichnet mit Paint??? Wo liegt mein Fehler???
Spoiler anzeigen
Ich möchte in einer PictureBox, die in einer Form angedockt ist ein Diagramm zeichnen. Bei Größenänderung der Form soll auch das Diagramm angepasst werden. Prinzipiell funktioniert das, jedoch muss zum neuzeichnen des Diagramms die Form erst vom Bildschirm verschwunden sein. Warum wird die nicht automatisch neu gezeichnet mit Paint??? Wo liegt mein Fehler???
VB.NET-Quellcode
- Public Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- PictureBox1.BackColor = Color.WhiteAddHandler PictureBox1.Paint, AddressOf Me.pictureBox1_Paint
- Me.ResizeRedraw = True
- End SubPrivate Sub Form1_Resize(sender As Object, e As EventArgs) Handles MyBase.Resize
- Invalidate()
- End SubPrivate Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
- ' Create a local version of the graphics object for the PictureBox.Dim g As Graphics = e.Graphics()
- Dim breite, hoehe As Integer
- 'Dim origin, endX, endY As System.Drawing.Point
- Me.ResizeRedraw = True
- 'Masse des Diagramms bestimmen
- breite = PictureBox1.Width
- hoehe = PictureBox1.Height
- 'Ursprung und Ende der beiden Achsen festlegenDim axes As Point() = {New Point(50, 20), New Point(50, hoehe - 50), New Point(breite - 20, hoehe - 50)}Dim axesPen As New Pen(Color.Black, 2)
- g.DrawLines(axesPen, axes)
- End SubPrivate Sub EndeToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EndeToolStripMenuItem.Click
- End
- End Sub
- Private Sub PictureBox1_SizeChanged(sender As Object, e As EventArgs) Handles PictureBox1.SizeChanged
- Invalidate()
- End SubPrivate Sub ZeichnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ZeichnenToolStripMenuItem.Click
- Invalidate()
- Update()
- End Sub
- End Class