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 :

Quand exécuter les taches au démarrage ou ne pas les relancer lorsque qu'on réouvre la page


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut Quand exécuter les taches au démarrage ou ne pas les relancer lorsque qu'on réouvre la page
    Bonjour à tous,
    J'ai un projet dans lequel j'exécute plusieurs tâches après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public MainWindow()
            {
                InitializeComponent();
                mes tâches....
            }
    ça fonctionne correctement, mais je ne suis pas sur que ce soit la meilleurs méthode...

    Mon problème, dans mon programme, je dois minimiser ma page, en ouvrir une autre, puis quand j'appuie sur un bouton de la seconde, restaurer ma page principale (celle qui était minimisée)
    le code utilisé sur la page principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.Hide();
    new SecondePage().ShowDialog();
    celui dans la seconde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    new MainWindow().Show();
    this.Close();
    ça fonctionne, mais je relance l'intégralité de mes tâches. Je ne souhaite pas le faire. Je veux réagrandir mon programme là où je m'étais arrêté (même onglet, etc...)

    Une idée ?

  2. #2
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 648
    Points : 2 170
    Points
    2 170
    Par défaut
    Bonjour,

    Le problème vient de là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new MainWindow().Show();
    Tu crées à chaque fois une nouvelle instance de ta fenêtre principale. Il suffit de stocker l'instance dans une variable quelque part histoire de garder la référence et d'appeler Show() à ta guise.

  3. #3
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par PixelJuice Voir le message
    Bonjour,

    Le problème vient de là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new MainWindow().Show();
    Tu crées à chaque fois une nouvelle instance de ta fenêtre principale. Il suffit de stocker l'instance dans une variable quelque part histoire de garder la référence et d'appeler Show() à ta guise.
    Merci pour cette réponse, mais peux-tu préciser ? Dans quel genre de variables dois-je stocker ? Comment ?
    Un petit exemple si possible.

    Merci d'avance.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    Si je ne dis pas de bêtises, ShowDialogl() bloque l'exécution de l'appelant (donc ici de ton MainWindow initial); donc en fermant la fenêtre appelé, le code poursuit sur les lignes suivant l'appel de ShowDialog; donc tu pourrais faire this.Show() tout de suite en dessous new SecondePage().ShowDialog();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    this.Hide();
    new SecondePage().ShowDialog();
    this.Show();
    Dans ton cas, tu dois avoir 2 instances de MainWindow, celle lancée à l'exécution de ton programme, et celle lancé par ton new MainWindow.Show()

  5. #5
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Salut umfred,
    effectivement, cela à l'air de fonctionner.

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quand créer les index ?
    Par WebPac dans le forum Optimisations
    Réponses: 13
    Dernier message: 13/03/2009, 17h13
  2. Réponses: 2
    Dernier message: 18/12/2006, 15h09
  3. Réponses: 2
    Dernier message: 16/12/2006, 19h00
  4. Réponses: 1
    Dernier message: 16/11/2006, 14h01
  5. [Indy] IdSMTP exécution en tache de fond
    Par aityahia dans le forum Delphi
    Réponses: 2
    Dernier message: 07/07/2006, 10h20

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