pjouy
Messages postés110Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention18 mai 2009
-
16 janv. 2007 à 00:42
pjouy
Messages postés110Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention18 mai 2009
-
17 janv. 2007 à 20:41
Bonjour...
Je deviens fou ! J'ai cherché partout mais j'ai pas trouvé la réponse à cette question :
Comment faire pour cacher ma fenêtre principale à son chargement en VB 2005 ?
Sur VB 6, dans le Form_Load, il suffisait de mettre Me.Hide et le tour était joué.
En VB 2005, ça ne marche pas (je veux dire que la fenêtre est toujours visible, sans message d'erreur).
Pourquoi ?? Y'a quelque chose que j'ai loupé ?
Le but est de permettre de charger mon application au démarrage de Windows avec une icône dans le
systray, sans en afficher l'unique fenêtre... classique, quoi ;)
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 16 janv. 2007 à 10:28
Salut,
Le Form_Load est appelé avant que le form ne soit montré, il y a encore un form.Show quelque part qui s'exécute après. Tu dois simplement mettre Me.Hide dans l'évènement Shown de ton form.
Julien.
pjouy
Messages postés110Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention18 mai 2009 16 janv. 2007 à 16:24
Merci pour vos réponses, mais aucune des deux ne me convient :
@ Julien237 : oui, mais il faut que quand je le veuille, ma form soit visible, sinon à chaque fois que je lui demanderai de s'afficher elle disparaitrait instantanément avec ta méthode.
@ EBArtSoft : j'avais pensé à ta solution, et ça ne marche pas (trop facile, lol)
J'espère que vous trouverez quand une solution pour me dépanner...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Aurazed
Messages postés36Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention26 mai 2008 16 janv. 2007 à 16:44
Dans l'editeur en mode design, tu as mis la propriété visible = false de ta form?
Cela pourrait ètre une solution pour qu'elle soit invisible a son chargement.
pjouy
Messages postés110Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention18 mai 2009 16 janv. 2007 à 19:28
@ Aurazed, la propriété Visible n'existe pas en VB 2005 en mode design.
@ Julien237, c'est effectivement bricolo, mais ça marche. Si quelqu'un trouve mieux, je suis preneur car la fenêtre s'affiche pendant un très court instant quand même.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 16 janv. 2007 à 22:39
Ben chez moi ca le cache même pas au démarrage :p, Activated cumule les problèmes de Load et de Shown, il va aussi se déclencher lorsque l'utilisateur réduira puis restaurera le form, donc il devra la aussi utiliser un artifice...
Julien.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 16 janv. 2007 à 22:42
Autre solution sans variable et sans form clignotant au début :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Opacity = 0
End Sub
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
If Me.Opacity = 0 Then
Me.Hide()
Me.Opacity = 100
End If
End Sub
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 16 janv. 2007 à 22:53
Mais je comprend pas trop... ta fenetre est toujours invisble ou bien sera visible a un moment ou quoi ? car chez moi visible = false et le tour est joué ??
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 16 janv. 2007 à 23:00
Oui c'est vrai, mais il faut voir où tu le mets le visible = False, en fait le problème est que le Form_Load et le Form_Activated sont tous deux appelés (la première fois pour activated) avant que le form ne soit réellement affiché, et donc il y'a un Form.Show qui est exécuté dans le code interne du form après notre Me.Visible = False. D'où le problème...
Julien.
pjouy
Messages postés110Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention18 mai 2009 17 janv. 2007 à 09:39
@ Julien237 : J'avais pensé à l'opacité, mais j'avais pas trouvé ça génial...
@EBArtSoft : Mon but est que, si dans une variable Command() il y a quelque chose, ne pas afficher la fenêtre (genre pour le démarrage de Windows, lancer le programme mais ne pas l'afficher).
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 17 janv. 2007 à 12:13
D'accord la c'est plus clair. Dans ce cas pourquoi ne pas ajouter un module et c'est le module qui chargera la fenetre si et seulement si la command() le souhaite ? ou bien charger sans affiché. Comme ça tu evite le probleme de l'overshowing