[VB.NET]Peut-on éviter le clignotement et leralentissement lors d'un resize d'un

cs_claudetom Messages postés 115 Date d'inscription jeudi 11 octobre 2001 Statut Membre Dernière intervention 15 octobre 2012 - 3 févr. 2004 à 22:30
cs_claudetom Messages postés 115 Date d'inscription jeudi 11 octobre 2001 Statut Membre Dernière intervention 15 octobre 2012 - 4 févr. 2004 à 01:49
Bonjour,
vb.net
Je resize via un timer (pour un effet ascenseur) un panel qui contient un
tabcontrol qui lui contient dans ces différents onglets (listviews, boutons,
un graphe, etc..)
Quand je resize celui-ci ou la form, tous les contrôles clignotent de même
quand je lance le timer pour le redimensionnement, le panel ne s'agrandit ou
se diminue pas à la vitesse du timer (50), mais très doucement ce qui est
horrible comme résultat.
Cela doit venir du faîte que les contrôles se rafraîchissent ?
Comment puis-je éviter cela, existe-t-il une instruction ou un morceau de
code qui pourrait résoudre ce désagrément ?
Merci beaucoup pour l'aide que vous pourrez m'apporter
Claude.
Sur VBFrancais ont m'à proposé cela :
Public Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As
System.IntPtr) As Long
LockWindowUpdate(Me.Handle)
et pour désactiver
LockWindowUpdate(Nothing)
Le résultat est mieux pour la rapidité, mais côté esthétique ce n'est pas ça, plus d'effet et les contrôles sont effacés.
Si vous aviez une autre solution qui fonctionne mieux ?

De même quand je resize la form à la souris, c'est pareil très saccadé ?
Merci

4 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
3 févr. 2004 à 23:56
oui c'est possible :

utilise les fonctions setstyles :

SetStyle(ControlStyles.UserPaint, true)
SetStyle(ControlStyles.AllPaintingInWmPaint, true)
SetStyle(ControlStyles.DoubleBuffer, true)

Magie :)

Tu met çà dans le constructeur de ta classe après le initializecomponents

::|The S@ib|::
MVP C#.NET
0
cs_claudetom Messages postés 115 Date d'inscription jeudi 11 octobre 2001 Statut Membre Dernière intervention 15 octobre 2012
4 févr. 2004 à 00:49
J'ai mis cela dans Public Sub New()
en-dessous de InitializeComponent()
Mais le résultat reste le même ?
il manque peut-être autre chose ?

Pour info ---
Mon panel qui contient le TabControl s'ajuste automatiquement via la propriété Anchor (Top, Bottom, Left, Right) idem pour le TabControl et ces contrôles
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
4 févr. 2004 à 00:52
Normalement le double buffering marche niquel , c'est qu'il y a un probleme ailleur, moi même je l'utilise (encore aujourd'hui) et je n'ai aucun scintillement.
Essaye de le mettre ailleur que dans le new peut-etre (j'y crois pas vraiment)

Essaye de forçer les refresh a certains endroits.

Sinon Copy / Paste ton code

::|The S@ib|::
MVP C#.NET
0
cs_claudetom Messages postés 115 Date d'inscription jeudi 11 octobre 2001 Statut Membre Dernière intervention 15 octobre 2012
4 févr. 2004 à 01:49
Envoyé message en privé
0
Rejoignez-nous