Gå til innhold

Hvordan autoredraw background image


Anbefalte innlegg

Videoannonse
Annonse

Du kan jo rett og slett fylle hele formen med èn farge, slik at det forrige bildet blir fjernet:

 

' Har dog ikke fått testet koden, men jeg skulle tro den fungerer

Graphics.FromImage(Me.BackgroundImage).FillRectangle(Me.BackColor, Me.RectangleToClient)

Lenke til kommentar
En ting som er veldig vikitg: Bruk OnPaint, eller Paint event, ellers vil bildet flimre, med mindre du bruker en bitmap som backbuffer, men backbuffer er av en eller annen grunn utrolig tregt.

 

Hvis du vil tegne bildet på nytt manuelt (fordi figuren byttet plass) kaller du Invalidate()

5073627[/snapback]

 

Vent litt, hvordan hva?

Lenke til kommentar

Dim myrect As Rectangle = New Rectangle(0, 0, 32, 32)

Protected Override Sub OnPaint(sender As Object, e As PaintEventArgs)
 e.Graphics.FillRect(New SolidBrush(Me.BackColor), Me.Bounds)
 e.Graphics.FillRect(Brushes.Black, myrect)
End Sub

Protected Override Sub OnKeyDown(sender As Object, e As KeyEventArgs)
 Select Case e.KeyCode
   Case Keys.Left
     myrect.Offset(1, 0)
   Case Keys.Right
     myrect.Offset(-1, 0)
   Case Keys.Down
     myrect.Offset(0, 1)
   Case Keys.Up
     myrect.Offset(0, -1)
 End Select
 Invalidate()
End Sub

Lenke til kommentar

Er litt slapp akkurat nå.... beklager men jeg skrev dette i FireFox, så her er det ordentlige eksempelet :p

 

Dim myrect As Rectangle = New Rectangle(0, 0, 32, 32)

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
 e.Graphics.FillRectangle(New SolidBrush(Me.BackColor), Me.Bounds)
 e.Graphics.FillRectangle(Brushes.Black, myrect)
End Sub

Protected Overrides Sub OnKeyDown(ByVal e As KeyEventArgs)
 Select Case e.KeyCode
 	Case Keys.Left
   myrect.Offset(-1, 0)
 	Case Keys.Right
   myrect.Offset(1, 0)
 	Case Keys.Down
   myrect.Offset(0, 1)
 	Case Keys.Up
   myrect.Offset(0, -1)
 End Select
 Invalidate()
End Sub

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...