blackcatthc
Messages postés86Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention 1 avril 2015
-
30 mars 2015 à 20:01
blackcatthc
Messages postés86Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention 1 avril 2015
-
1 avril 2015 à 17:19
Bonjour,
En fait voilà lorsque j'exécute mon application, je demande dans l'évènement Form_load de charger une image qui se trouve à la racine de mon programme. Le problème, c'est que je vois d'abord apparaitre le form gris une fraction de seconde avant de voir mon image apparaitre en arrière plan. Comment puis-je actualiser le form avant d'afficher à l'écran ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 30 mars 2015 à 20:44
Bonjour,
Déjà : l'évènement Load intervient (comme son nom l'indique) au chargement. Il se produit AVANT le premier affichage d'un formulaire.
Il est dès lors bien clair que le choix de cet évènement n'est pas le plus "heureux" dans ton cas.
Ouvre MSDN et choisis donc un évènement moins "primaire" ===>>
https://msdn.microsoft.com/fr-fr/library/system.windows.forms.form%28v=vs.110%29.aspx
Pour ton info : l'une des toutes premières petites choses que j'ai très spontanément faites aux tous débuts de mes expériences en développement a été, juste pour y voir bien clair, de regarder dans quel ordre exact survenaient les évènements d'un Form.
Cela n'a pas été difficile et je ne suis pas sorti de la cuisse de Jupiter pour avoir l'idée toute bête d'afficher une msgbox disant l'évènement intervenant dans chacun des évènements possibles. En "lançant", il m'a suffi de regarder l'ordre dans lequel ces messages apparaissaient. Crois-tu que ce petit réflexe demande du génie ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
blackcatthc
Messages postés86Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention 1 avril 2015 31 mars 2015 à 17:17
Bien justement ucfoutu comme l'événement load d'un form se produit avant qu'il soit afficher à l'écran j'imaginais que mon image d'arrière plan serais charger et afficher sur le form et qu'ensuite seulement le form serait affiché à l'écran. Je programme habituellement sous VB6 et c'est comme ça que je fais.
cs_ShayW quand je dit à la racine de mon programme c'est à dire que l'image se trouve dans le dossier ou se trouve le programme. Mais le problème n'est pas là, je n'ai aucun problème pour la charger ^^. Et oui je l'a charge en Backgroundimage sur le form1.
En fait je crée un logiciel qui aura plusieurs skin et de très nombreux form environ 40. C'est pour cela que je n'utilise pas les ressource. car à se que j'ai comprit il n'est pas possible d'y placer des dossiers pour y ranger toute ces images et vu la quantité d'images qu'il va y avoir ça risque d'être un peu le bordel la dedans.
J'ai voulu aussi essayer les imagelist mais contrairement a vb6 il faut que tout les images soit de même taille donc ça ne me convient pas non plus.
blackcatthc
Messages postés86Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention 1 avril 2015 1 avril 2015 à 17:19
Je sais que ce n'ai pas très élégant comme manière de programmer. Mais c'est pour éviter de devoir manipuler trop de composant dans un nombre réduit de forms. Comme ça le programme et les form me paraisse un peu moins bordélique.
Après il y a aussi le faite que VB.net n'aime pas trop qu'on passe des control du type panel ou Picture en visible = false et en visible = True car la encore ça clignote de partout et l'on vois l'arrière plan apparaitre un cours instant avant l'apparition de l'image des control et c'est insupportable.
D'ailleurs si quelqu'un a une idée à ce sujet, je suis vraiment très intéressé. Le seul moyen que j'ai trouver de mon côté est d'utiliser des images au forma BMP ce qui réduit pas mal les scintillements contrairement au image au forma PNG. Mais bizarrement moi j'ai besoin d'utiliser pas mal d'image au forma PNG.