Cacher ma fenetre à son démarrage

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

SVP, aidez-moi !!
Merci

14 réponses

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
16 janv. 2007 à 16:51
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.
3
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
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.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
16 janv. 2007 à 14:00
Ou visible = false

E.B.
0
pjouy Messages postés 110 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Aurazed Messages postés 36 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 26 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.
0
pjouy Messages postés 110 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 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.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
16 janv. 2007 à 21:01
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.
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
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.
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
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

Julien.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
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é ??

@+

E.B.
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
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.
0
pjouy Messages postés 110 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 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).
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
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

@+

E.B.
0
pjouy Messages postés 110 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 mai 2009
17 janv. 2007 à 20:41
> "ou bien charger sans affiché"
Comment faire ?
0
Rejoignez-nous