PB graphics sous vb.net: Refresh

vincentClimber Messages postés 20 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 mai 2006 - 13 sept. 2005 à 10:41
vincentClimber Messages postés 20 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 mai 2006 - 13 sept. 2005 à 16:17
Bonjour,
voici mon probleme...:
je suis en VB.net, j'utilise en mode MDI une form contenant un usrControl contenant lui meme une picturebox sur laquelle je dessine des courbes à l'aide d'un objet de type "Graphics".
Et c'est là que j'ai 2 problemes:
1. le temps d'affichage est horriblement long , bien + que sous VB qund j'utilisais les methodes graphiques (line...) de la picturebox
2. quand j'ai fini d'afficher mes courbes, et que je minimise puis remaximise ma fenetre...les courbes ont disparues...bref y a un pb de rafraichissement quoi!

Si quelqu'un à une idée, un remède, une suggestion...
Merci d'avance

4 réponses

cs_69chris Messages postés 318 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 30 décembre 2005 1
13 sept. 2005 à 10:53
Salut,



Fait un tour dans la doc sur la méthode SetStyle (définir DoubleBuffer et ResizeRedraw à true).

Si ça arrange rien, on verra d'autres chose.



Chris



PS : Sympa les drus!

N'oubliez pas de cloturer votre post.
0
vincentClimber Messages postés 20 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 mai 2006
13 sept. 2005 à 11:51
merci Chris!..
ça semble bien cette methode, j'ai essayé de l'utiliser comme ça:

Me.SetStyle(ControlStyles.DoubleBuffer _
Or ControlStyles.UserPaint _
Or ControlStyles.AllPaintingInWmPaint, _
True)
Me.UpdateStyles()

je l'ai appliqué sur ma form et sur mon usrControl, bein...ça marche pas
mais pt'être que j'ai loupé qq chose..
si tu as une autre idée?..
0
cs_69chris Messages postés 318 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 30 décembre 2005 1
13 sept. 2005 à 13:41
Donc si ça fait rien (en tout cas de visible), c'est que ton problème est ailleurs (je suis trop fort des fois ).

Pour le temps de tracé, je suis plutôt supris que ça soit long. Tous
les contrôles que j'ai pu faire allaient très vite (ça se voyais pas
quoi). Ajoute des timer pour voir quel partie de ton code prend le plus
de temps, il y a peut-être une explication.


Pour le non refresh de la figure, tu peux voir les évenements générés lors de la maximisation.



Et là, j'y pense!! Je crois bien avoir proposé ça à quelqu'un d'autre
sur ce forum. Pourquoi ne pas dessiner dans un Bitmap et afficher le
bitmap dans le PictureBox. Ca évite tous les problèmes de refresh. Donc
ton UserControl reste héritier du PictireBox, par contre, c'est toi qui
définit la propriété Image avec un Bitmap que tu stockes dans ton
objet. Ca doit pas faire des tonnes de modif dans ton code et en plus
bien marcher.



Chris

N'oubliez pas de cloturer votre post.
0
vincentClimber Messages postés 20 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 mai 2006
13 sept. 2005 à 16:17
bon j'en peux plus...
il me semble avoir tout essayé!
le coup du bmp, c'est pas bon (c'est déja ça que j'utilise)
En fait, c'est le pb est + étendu que ce que j'ai écrit:
mon image s'efface quand je passe une fenetre par dessus... ca marche exactement comme la gomme de paint!!!
mais ça commence à me ...

Merci bcp pour ton aide, je me sens moins seul...
0
Rejoignez-nous