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

Windows Forms Discussion :

Windows Form ouverte par une autre Windows Form [Débutant]


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Windows Form ouverte par une autre Windows Form
    Bonjour,

    Je n'ai pas ne grande expérience en c#, désolé si je suis un peu maladroite dans mes explications.

    J'aimerais afficher une 2nde Windows Form périodiquement, toute les 30min par exemple, uniquement lorsque un bouton "Start" présent sur ma première Windows Form a été appuyé.
    C'est a dire que lorsque mon programme principal et en marche, j'aimerais que la deuxième Windows Form s'affiche toute les 30 min.

    J'ai d'abord pensé a créer une instance de ma Form2 dans le Form load de ma Form1, puis de créer un timer dans ma Fom2 qui afficherais la form toute les 30min mais cela ne fonctionne pas. Je ne comprend pas trop pourquoi étant donne que si j'utilise le Timer pour cacher ma form, cela fonctionne. L'autre problème et que je doit également récupérer dans Form2 le booléen présent dans Form1 indiquant si le bouton "Start" a été appuyé ou non, je ne sais pas vraiment comment m'y prendre.

    Mon code :

    Pou Form1.cs

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                this.WindowState = FormWindowState.Minimized;
                m_IsClosingAllowed = false;
                m_Controller = new Controller();
     
     
            }
     
            private Controller m_Controller;
            private bool m_IsClosingAllowed;
     
            private void Form1_Load(object sender, EventArgs e)             //When Form loads, the Controller attributs initialize the application.
            {
                Hide();
                m_Controller.Initialization();
                /*Ce que je pensais faire
                Form2 F2 = new Form2();*/
            }
     
            private void startButton_Click(object sender, EventArgs e)
            {
                int l_Result = m_Controller.Start();
                if (l_Result == 1)
                {
                    WorkerRecorderIcon.BalloonTipIcon = ToolTipIcon.Info;
                    WorkerRecorderIcon.BalloonTipTitle = "START";
                    WorkerRecorderIcon.BalloonTipText = "Program is now running";
                    WorkerRecorderIcon.ShowBalloonTip(5000);
     
     
                }
                else if (l_Result == 0)
                {
                    WorkerRecorderIcon.BalloonTipIcon = ToolTipIcon.Info;
                    WorkerRecorderIcon.BalloonTipTitle = "STARTED";
                    WorkerRecorderIcon.BalloonTipText = "Program is already running";
                    WorkerRecorderIcon.ShowBalloonTip(5000);
                }
            }

    Pour Form2.cs

    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
    public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
     
            private void Form2_Load(object sender, EventArgs e)
            {
                Hide();
                Timer MyTimer = new Timer();
                MyTimer.Interval = (1 * 60 * 1000); // 1 min
                MyTimer.Tick += new EventHandler(MyTimer_Tick);
                MyTimer.Start();
     
            }
     
            private void MyTimer_Tick(object sender, EventArgs e)
            {
                this.Show();
            }
     
        }
    }
    Je ne sais pas si j'ai été très clair, merci par avance pour vos aides !

  2. #2
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 51
    Points
    51
    Par défaut
    Je penses que ta première idée était la bonne.

    Sauf que tu devrais considérer ta form 1 comme la master.
    c'est à dire que c'est elle qui contient le timer et fait un show de la form 2 toutes les 30 min;

    déclare ta form2 en dehors de ton load. en dessous de IsClosingAllowed par exemple (dans form1)

    mais tout ton truc de timer dans le load.

    Ensutie ton Tick qui se trouvait dans ta Form2 tu ne fais plus this.show mais form2.show() évidement.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Effectivement ça marche mieux comme ça ! Merci.
    J'ai juste déclaré ma form2 dans l'event du timer, pour ne pas avoir d’exceptions, ça me sera plus utile ensuite.

    Mon code si il peut être utile a quelqu'un :

    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
    27
    28
    29
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                this.WindowState = FormWindowState.Minimized;
                m_IsClosingAllowed = false;
                m_Controller = new Controller();
     
            }
     
            private Controller m_Controller;
            private bool m_IsClosingAllowed;
     
            private void Form1_Load(object sender, EventArgs e)             //When Form loads, the Controller attributs initialize the application.
            {
                Hide();
                m_Controller.Initialization();
                Timer MyTimer = new Timer();
                MyTimer.Interval = (1 * 60 * 1000); // 1 min
                MyTimer.Tick += new EventHandler(MyTimer_Tick);
                MyTimer.Start();
            }
     
            private void MyTimer_Tick(object sender, EventArgs e)
            {
                    Form2 F2 = new Form2();
                    F2.Show();
            }

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

Discussions similaires

  1. Mailbox sur Exchange ouverte par une autre personne
    Par lilas123 dans le forum Autres Solutions d'entreprise
    Réponses: 0
    Dernier message: 01/10/2013, 13h05
  2. [XL-2007] [FORM] remplacer la valeur d'une cellule par une autre
    Par coldavires dans le forum Excel
    Réponses: 7
    Dernier message: 21/01/2010, 22h34
  3. Réponses: 1
    Dernier message: 14/04/2008, 11h28
  4. [Form et popup] target d'un form ouvert dans une popup
    Par Flobel dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 19/01/2007, 21h05
  5. Simuler une touche par une autre sous Windows
    Par sdelaunay dans le forum Windows
    Réponses: 2
    Dernier message: 05/05/2006, 14h31

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