cAlebcore
Messages postés3Date d'inscriptionmercredi 3 décembre 2003StatutMembreDernière intervention30 avril 2008
-
29 avril 2008 à 10:26
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
1 mai 2008 à 01:03
Salut
Ca fait au moins une bonne heure que je cherche la solution à mon problème, et à mon avis ça doit être très simple:
J'ai une PictureBox sur laquelle l'utilisateur peut dessiner un rectangle. J'utilise DrawRectangle() et les quatres coordonnées (X, Y, Width, Height) viennent de 4 NumericUpDown. Dès que l'utilisateur modifie un de ces quatre NumericUpDown, j'appelle la fonction qui dessine mon rectangle:
private
void RefreshRect(){
Pen pPen =
new
Pen(
Color.Red, 1);picVideoPreview.CreateGraphics().DrawRectangle(pPen, X, Y, cWidth, cHeight);
pPen.Dispose();
}
Tout fonctionne bien, sauf que seulement, lors ce qu'on dessine le deuxième triangle, le premier est toujours là et je voudrais qu'il disparaisse... Vous voyez ce que je veux dire?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 30 avril 2008 à 00:16
Salut, non sérieusement Disposer la PictureBox juste avant de dessiner dessus c'est n'importe quoi.. Dispose ça revient quasiment à supprimer la PictureBox de la mémoire. Suffit juste d'invalider la zone à redessiner :
Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 29 avril 2008 à 13:42
Tu as essayé en faisant un Dispose de ta pictureBox avant de tracer le nouveau rectangle ? (enfin je connais pas trop les pictures box et j'essaie de voir avec l'interface de VS2005 version allemande :P )
cAlebcore
Messages postés3Date d'inscriptionmercredi 3 décembre 2003StatutMembreDernière intervention30 avril 2008 29 avril 2008 à 15:49
Ach, es geht nicht!
J'ai essayé de mettre un picVideoPreview.Dispose() juste avant de faire mon rectangle, mais j'ai une exception:
L'exception System.ObjectDisposedException n'a pas été gérée
Message="Impossible d'accéder à un objet supprimé.\r\nNom de l'objet : 'PictureBox'."
Faut dire que là je nage un peu, je vois pas le rapport... Néanmoins, j'ai essayé avant chaque dessins de rectangles de recharger mon image dans ma PictureBox puis de faire un DoEvents(). Ca marche à moitier, car dès que je clique plusieurs fois de suite rapidement sur mes NumericUpDown (ceux qui dessinent le rectangle, donc) j'ai une exception. (NullReferenceException sur la ligne Application.DoEvents()).