ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008
-
24 août 2006 à 15:37
ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008
-
24 août 2006 à 16:15
Bonjour a tous,
J'ai derivé un controle (Panel) dans le but de le personnalisé en le redessinant.
Je le redimmensionne a l'aide d'un timer sur clic utilisateur.
Quand je diminue mon controle je n'ai aucun probleme, par contre quand je l'augmente, mon controle est tout sacadé. Quel est la fonction qui permet de redessiner le control ? Merci d'avance pour votre aide.
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 24 août 2006 à 15:50
normalement... il suffit de faire un override de la méthode OnPaint (voire OnPaintBackground) pour redessinner ton controle.
Mais si tu gères en plus une animation, tu dois aussi pensé au fait que lorsque tu redimensionnes ton panel, les controles qui sont à l'intérieure bouge aussi.
l'idée c'est d'appeler les méthode SuspendLayout et ResumeLayout avant et après l'animation.
Pour redessiner un controle, il faut appeler la méthode Invalidate() de celui-ci... Si c'est vraiment urgent (mais je le déconseille pour tes raisons de performances), tu peux utiliser la méthode Refresh().
ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008 24 août 2006 à 16:15
Je fait bien un override de la méthode OnPaint
Le redimmensionnement du panel a justement pour but de cacher les control a l'interieur.
La methode Invalidate() resoud bien le probleme.