Hej! Antingen ritar du till en bitmap eller till kontrollen. Jag tror du har blandat ihop det. Tack Andreas!Me.invalidate() ritar inte om?
Har gjort ett litet ritprogram som övning i vb.net. Programmet fungerar bra med undantag av att när ritytan behöver ritas om måste jag minimera och därefter öppna fönstret igen. Enligt min lärobok skall man använda Me.invalidate() efter ändring på ritytan men inget händer då. Någon som har något tips om vad jag gör för fel? Har suttit ett par kvällar och provat många möjligheter. /Nn
' Skapar variabel för ritytan.
Private g As System.Drawing.Graphics
' Skapar en instans av klassen GraphicSystem.
Private gs As GraphicsSystem = New GraphicsSystem()
****
' Skapar ritytan och ritar in startmotivet.
Private Sub frmMainProgram_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Me.pbMain.Image = New Bitmap(pbMain.Width, pbMain.Height, _
System.Drawing.Imaging.PixelFormat.Format24bppRgb)
Me.g = Graphics.FromImage(Me.pbMain.Image)
Me.g.Clear(Color.White)
gs.DrawAll(g)
End Sub
Private Sub frmMainProgram_Paint(ByVal sender As Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles MyBase.Paint
Me.g.Clear(Color.White)
gs.DrawAll(g)
End Sub
****
' Händelshanterar, dvs meny för uppritning av något.
****
Me.Invalidate() ' Detta fungerar inte!!!Sv: Me.invalidate() ritar inte om?
Testa utan bitmap:
<code>
' Skapar en instans av klassen GraphicSystem.
Private gs As GraphicsSystem = New GraphicsSystem
' Skapar ritytan och ritar in startmotivet.
Private Sub frmMainProgram_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim g As Graphics = pbMain.CreateGraphics
g.Clear(Color.White)
gs.DrawAll(g)
End Sub
Private Sub frmMainProgram_Paint(ByVal sender As Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles MyBase.Paint
Dim g As Graphics = e.Graphics
g.Clear(Color.White)
gs.DrawAll(g)
End Sub
****
' Händelshanterar, dvs meny för uppritning av något.
****
Me.Invalidate() ' Detta fungerar inte!!!
End Class
</code>Sv: Me.invalidate() ritar inte om?
Ditt svar fick ordning på min funderingar. Det stämmer att jag har blandat ihop två olika ritytor.
/Nn