Graphiques de dessin Disparaître dans VB.net

J'ai un programme simple qui permet de dessiner sur l'écran avec FillEllipse et FillRectangle. Mon problème est que lorsque vous faites glisser une autre fenêtre sur même une petite partie de l'écran, la partie sera effacé. Cela se produit lorsque vous faites glisser la fenêtre sur, laisser aller, et faites-le glisser. Est-il possible de résoudre ce problème?

Dim MyFormObject As Graphics = Me.CreateGraphics
        Select Case shape
            Case "Ellipse"
                MyFormObject.FillEllipse(brush, e.X - CInt(brushWidth / 2), e.Y - CInt(brushHeight / 2), brushWidth, brushHeight)
            Case "Rectangle"
                MyFormObject.FillRectangle(brush, e.X - CInt(brushWidth / 2), e.Y - CInt(brushHeight / 2), brushWidth, brushHeight)
        End Select
Êtes-vous dessiner directement à l'écran (hdc 0) ou à votre propre forme?
Édité pour montrer mon code
modifié la réponse ci-dessous, au lieu de créer un nouveau Graphique à chaque fois que vous aurez besoin de tirer un persistante graphiques comme un pictureBox. Sinon, vous pouvez redessiner à chaque événement de peinture, mais qui pourrait coûter cher.

OriginalL'auteur WillumMaguire | 2012-11-11