Aha, myslel jsem, že jde o to, že vykreslujete v MouseMove. Tady je problém v tom, že když zavoláte Me.Invalidate(), grafika formuláře se vyčistí, formulář se překreslí, a dokreslí se to, co vy vykreslíte v handleru události Form.Paint. Tzn., že zůstane poslední render, jelikož ty předchozí se maží tí, jak kreslíte další. Tady je Váš kód upravený tak, aby rendery nemizely. Vložte na formulář PictureBox a dejte mu Dock na DockStyle.Fill.
Public Class Form1
Dim b As New Bitmap(Me.ClientSize.Width, Me.ClientSize.Height)
Private Sub PictureBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
Using g As Graphics = Graphics.FromImage(b)
g.Clear(SystemColors.Window)
For d As Integer = 10 To 0 Step -1
g.FillRectangle(Brushes.SteelBlue, 20, 120 + (-10 * d), 260, 8)
g.FillRectangle(Brushes.Gray, 20, 120 + (10 * d), 260, 8)
Next
End Using
PictureBox1.Image = b
End Sub
End Class
|