Cacher ma fenetre à son démarrage [Résolu]

pjouy 110 Messages postés mardi 8 juillet 2003Date d'inscription 18 mai 2009 Dernière intervention - 16 janv. 2007 à 00:42 - Dernière réponse : pjouy 110 Messages postés mardi 8 juillet 2003Date d'inscription 18 mai 2009 Dernière intervention
- 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 ;)

SVP, aidez-moi !!
Merci
Afficher la suite 

14 réponses

Répondre au sujet
Julien237 884 Messages postés vendredi 3 novembre 2000Date d'inscription 3 mars 2009 Dernière intervention - 16 janv. 2007 à 16:51
+3
Utile
Ben au pire tu fais une variable en plus :

Dim FirstTimeShown As Boolean

dans Form_Load
FirstTimeShown = True

dans Form_Shown
If FirstTimeShown then
  FirstTimeShown = False
  Me.Hide
End if...

C'est un peu bricolo mais ca marchera
Julien.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Julien237
Julien237 884 Messages postés vendredi 3 novembre 2000Date d'inscription 3 mars 2009 Dernière intervention - 16 janv. 2007 à 10:28
0
Utile
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.
Commenter la réponse de Julien237
cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention - 16 janv. 2007 à 14:00
0
Utile
Ou visible = false

E.B.
Commenter la réponse de cs_EBArtSoft
pjouy 110 Messages postés mardi 8 juillet 2003Date d'inscription 18 mai 2009 Dernière intervention - 16 janv. 2007 à 16:24
0
Utile
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...
Commenter la réponse de pjouy
Aurazed 37 Messages postés jeudi 16 février 2006Date d'inscription 26 mai 2008 Dernière intervention - 16 janv. 2007 à 16:44
0
Utile
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.
Commenter la réponse de Aurazed
pjouy 110 Messages postés mardi 8 juillet 2003Date d'inscription 18 mai 2009 Dernière intervention - 16 janv. 2007 à 19:28
0
Utile
@ 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.
Commenter la réponse de pjouy
cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention - 16 janv. 2007 à 21:01
0
Utile
Rahhhlalal faut tout faire ici :p

Voici ma solution :

Private
Sub Form1_Activated(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Activated

Me.Visible =
False

End
Sub@+

E.B.
Commenter la réponse de cs_EBArtSoft
Julien237 884 Messages postés vendredi 3 novembre 2000Date d'inscription 3 mars 2009 Dernière intervention - 16 janv. 2007 à 22:39
0
Utile
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.
Commenter la réponse de Julien237
Julien237 884 Messages postés vendredi 3 novembre 2000Date d'inscription 3 mars 2009 Dernière intervention - 16 janv. 2007 à 22:42
0
Utile
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

Julien.
Commenter la réponse de Julien237
cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention - 16 janv. 2007 à 22:53
0
Utile
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é ??

@+

E.B.
Commenter la réponse de cs_EBArtSoft
Julien237 884 Messages postés vendredi 3 novembre 2000Date d'inscription 3 mars 2009 Dernière intervention - 16 janv. 2007 à 23:00
0
Utile
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.
Commenter la réponse de Julien237
pjouy 110 Messages postés mardi 8 juillet 2003Date d'inscription 18 mai 2009 Dernière intervention - 17 janv. 2007 à 09:39
0
Utile
@ 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).
Commenter la réponse de pjouy
cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention - 17 janv. 2007 à 12:13
0
Utile
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

@+

E.B.
Commenter la réponse de cs_EBArtSoft
pjouy 110 Messages postés mardi 8 juillet 2003Date d'inscription 18 mai 2009 Dernière intervention - 17 janv. 2007 à 20:41
0
Utile
> "ou bien charger sans affiché"
Comment faire ?
Commenter la réponse de pjouy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.