IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Comment cacher la fenêtre principale lors de SplashScreen ?


Sujet :

C#

  1. #1
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut Comment cacher la fenêtre principale lors de SplashScreen ?
    Bonjour,

    Je n'arrive pas à cacher ma fenêtre principale pendant que l'application démarre. J'ai donc ma splashScreen par dessus ma fenêtre principale. J'ai essayé la propriété Visible dae Form et la méthodae Hide(). D'après les exemples que j'ai suivis, la méthode Hide() devrait suffir...

    Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    public MainForm()
        {
          this.ShowInTaskbar = false;
          this.Visible = false;
          this.Hide();
     
          splashScreen = new SplashScreenForm(iNbStep);
          splashThread = new Thread(new ThreadStart(splashScreen.ThreadLoop));
          splashThread.Start();
     
          ...
        }
     
      private void MainForm_Load(object sender, EventArgs e)
      {
        ...
     
          //On affiche la fenêtre et on ferme la splashScreen.
          this.ShowInTaskbar = true;
          this.Visible = true;
          splashThread.Abort();
     
          //Login
          Login();
        }
    Merci d'avance!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 101
    Points : 86
    Points
    86
    Par défaut
    Ben moi je commence par instancier un splashscreen, qui lui va instancier la fenêtre principale
    Comme ça, à la fin du chargement de la fenêtre principale (dès qu'elle s'affiche), je n'ai plus qu'à cacher le splashscreen...

  3. #3
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Et comment tu fais pour initialiser tes modules que tu as besoin dans ta fenêtre principale? Est-ce que tu arrives à afficher les erreurs de chargement de l'application dans ta splashScreen?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 101
    Points : 86
    Points
    86
    Par défaut
    Euuuh je comprend pas très bien la question là...

    Ta fenêtre principale se charge normalement, avec son constructeur et tout... Par contre, quand t'as un exception c'est un peu galère, y faut regarder les innerexceptions dans le fenêtre détaillée...

  5. #5
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Dans ma solution, je catch les exceptions lorsque je charge les modules. Cela me permet de récupérer le message de l'exception et de l'envoyer à ma SplashScreen. J'ai une méthode dans la SplashScreen qui permet d'ajouter des messages dans un TextBox. Cela me permet d'avoir un suivi du chargement de l'application, ainsi que des logs...

    Donc avec ta solution, tu dis que la récupération des exceptions est difficile?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 101
    Points : 86
    Points
    86
    Par défaut
    Ah ben non, dans ce cas, les exceptions devraient remonter toutes seules dans ton splashscreen, vu que c'est lui qui instancie tout. Tu n'as plus qu'à les catcher dans ton splashscreen et les afficher.

    Tu peux aussi les catcher avant, dans ta fenetre principale par exemple, et les envoyer a ton splashscreen par la suite. De toute manière, il faudra que ta fenetre principale ai une référence vers le splashscreen pour pouvoir le cacher. Donc tu fais:

    splashscreen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MainWindow mainWindow = new mainWindow(this);
    MainWindow
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public MainWindow(SplashScreen splashScreen)
    {
        this.splashScreen = splashScreen;
    ...
    }
    et une fois que t'as la référence ben tu fais c'que tu veux

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/11/2007, 23h09
  2. Réponses: 4
    Dernier message: 05/01/2007, 18h11
  3. comment fermer la fenêtre principale sous IE ?
    Par renaudjuif dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/08/2006, 14h31
  4. Réponses: 1
    Dernier message: 24/10/2005, 23h47
  5. [CreateProcess] Comment cacher la fenêtre ?
    Par iubito dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 27/04/2004, 18h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo