Methode clear

alainh2401 Messages postés 7 Date d'inscription mardi 2 mars 2004 Statut Membre Dernière intervention 2 juillet 2008 - 30 nov. 2007 à 17:01
 Utilisateur anonyme - 30 nov. 2007 à 21:19
Bonjour,

J'aimerais savoir comment on peut contourner la methode clear, car celle-ci efface les objets précédement dessiné
J'ai bien essayé avec deux bitmaps, le premier est l'image "résultat", la seconde sert uniquement pendant le dépassement de la souris, mais l'image clignote.

Merci d'avance pour votre aide

Salutations

Alain

2 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
30 nov. 2007 à 18:20
Bonjour,

La propriété Autoredraw ne semblant pas être présente dans VB.Net ( !!) , je crois que tu devras la remplacer... (je peux me troiper ...)

http://www.c-sharpcorner.com/UploadFile/rmeyer/AutoRedrawInVBdotNET11162005064540AM/AutoRedrawInVBdotNET.aspx
0
Utilisateur anonyme
30 nov. 2007 à 21:19
Salut,

J'ai retrouvé ce code que j'avais fait dans mes archives :
Cela reprend ce que tu as dans le lien donné par Jmf (que je salut au passage) mais sous forme de classe pour mettre plus simplement sur les contrôles standards :
Imports System
Imports System.Drawing
Imports System.Windows.Forms

Public Class AutoRedraw
  Implements IDisposable

  Private DisposedValue As Boolean = False
  Private _Graphic As Graphics
  Private _Image As Image
  Private _Control As Control
  Public Sub New(ByVal Control As Control)
    MyClass._Control = Control
    MyClass._Image = New Bitmap(MyClass._Control.ClientSize.Width, _
      MyClass._Control.ClientSize.Height)
    MyClass._Graphic = Graphics.FromImage(MyClass._Image)
    AddHandler _Control.Paint, AddressOf ControlPaint
  End Sub

  Public ReadOnly Property Graphic() As System.Drawing.Graphics
    Get
      Return MyClass._Graphic
    End Get
  End Property
  Public ReadOnly Property Image() As System.Drawing.Image
    Get
      Return MyClass._Image
    End Get
  End Property

  Private Sub ControlPaint(ByVal Sender As Object, ByVal e As PaintEventArgs)
    MyClass.Paint(e.Graphics)
  End Sub
  Private Sub Paint(ByVal Graphic As Graphics)
    Graphic.DrawImage(MyClass._Image, 0, 0)
  End Sub
  Public Sub ReDraw()
    MyClass.Paint(MyClass._Control.CreateGraphics())
  End Sub

  Protected Overridable Sub Dispose(ByVal disposing As Boolean)
    If Not MyClass.DisposedValue Then
      RemoveHandler _Control.Paint, AddressOf ControlPaint
      MyClass._Graphic.Dispose()
      MyClass._Image.Dispose()
    End If
    MyClass.DisposedValue = True
  End Sub
  Public Sub Dispose() Implements IDisposable.Dispose
    MyClass.Dispose(True)
    GC.SuppressFinalize(Me)
  End Sub
  Protected Overrides Sub Finalize()
    MyClass.Dispose()
    MyBase.Finalize()
  End Sub

End Class, ----
(Coloration syntaxique automatique par Kenji)

__________
  Kenji
0
Rejoignez-nous