Basculer des forms avec fluidité

Résolu
cs_yannick93 Messages postés 3 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 25 mai 2011 - 24 mai 2011 à 11:30
cs_yannick93 Messages postés 3 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 25 mai 2011 - 25 mai 2011 à 15:00
Bonjour,
J'ai un problème a priori simple, mais qui me pose quelques soucis.
Je déclare des instances de plusieurs forms lors du splash.
Puis je navigue d'une form à une autre en utilisant Form.Show() et Form.Hide().
Ca fonctionne très bien, mais j'ai un affichage "saccadé": on voit tous les contrôles se construire les uns après les autres, etc.
Comment faire pour que les mises à jour de chaque form se fassent en arrière-plan, et que ainsi la navigation puisse être plus fluide ?

4 réponses

VbNicoG Messages postés 127 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 6 septembre 2019
25 mai 2011 à 14:30
Il existe une propriété "doublebuffer" dans les forms qui est supposé éviter ce genre de scintillement mais personnellement je n'ai jamais eu l'impression que ça marche!
3
VbNicoG Messages postés 127 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 6 septembre 2019
24 mai 2011 à 12:31
Bonjour,

J'ai eu un problème similaire avec mon appli. Cependant, c'est différent car je n'avais qu'une form principale et j'ai intégré des usercontrol pour les différentes page de cette form. L'affichage des usercontrol sur un clic d'une nouvelle page très saccadé la première fois.
J'ai donc forcé dans l'évènement load de la form, l'initialisation de tous mes usercontrols (en appelant une fonction publique dans ces derniers au lieu d'utiliser l'évènement load), ça prend quelques secondes en ce qui concerne car j'ai un paquet d'objets. Ce n'est plus saccadé.

Le problème avec les form et l'utilisation des hide et show, c'est que la form est réinitialisée à chaque fois (si je ne dis pas de bétises) et donc c'est saccadé.

Essaies de trouver un moyen d'initialiser toutes tes forms au démarrage et de jouer sur la visibilité ou non de ces forms. Sinon, utilises des Usercontrol si possible.
0
cs_yannick93 Messages postés 3 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 25 mai 2011
25 mai 2011 à 14:23
Bonjour,

Le FORM est généré durant le splah, et actualisé en arrière-plan, alors qu'il est masqué.
Il est donc prêt à être affiché, le souci c'est que lors du SHOW un des champs (une picturebox...) met du temps à s'afficher, d'où l'effet de scintillement.

Comment faire pour que la transition entre 2 forms déjà créés et actualisés soit plus fluide ?
0
cs_yannick93 Messages postés 3 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 25 mai 2011
25 mai 2011 à 15:00
Et bien détrompe-toi, ça résoud pas mal de choses !
C'est même très efficace dans mon cas.
Je dois uniquement voir avec les "RectangleShapes" de VisualBasic PowerPacks qui elles ne passent pas, mais je pense que pour le coup je vais m'en passer !
0
Rejoignez-nous