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.
É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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez mettre un contrôle PictureBox sur votre formulaire et dessiner à la place, et il n'est pas effacée lorsque les autres fenêtres de la peinture sur elle:
le faire une fois, sur form_load ou quelque chose:
dessiner:
OriginalL'auteur gordy
Vous devez faire tout votre dessin dans la
Paint
événement, qui se déclenche à chaque fois que votre contrôle obtient repeint.OriginalL'auteur SLaks
Le code suivant permet de dessiner un rectangle avec la souris (cliquez et faites glisser). Ajouter un
PictureBox
à un formulaire.C'est étrange. Quand j'ai tester le code, recouvrant la forme ne perd pas le dessin, mais la minimisation de la forme.
J'ai édité ma réponse à résoudre le problème soulevé par Chris Dunaway
OriginalL'auteur SSS
@SLaks déjà dit à vous de faire tous les travaux de peinture dans la méthode OnPaint. Voici un peu plus d'informations. Si vous essayez de tirer sur un formulaire, vous devez substituer la méthode OnPaint et faire tout ce que vous peinture à l'aide de la carte Graphique instance qui est passé dans la méthode. Voici plus d'informations sur le sujet:
http://www.bobpowell.net/creategraphics.htm
http://www.bobpowell.net/picturebox.htm
OriginalL'auteur Chris Dunaway
juste un aperçu, ce qui m'a vraiment aidé à dessiner dans vb.net a cet exemple vbnettuthut.blogspot.com - il montrer un exemple complet pour dessiner rapide et en douceur, avec un exemple de travail et de la source de la morue
OriginalL'auteur Samuel