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
Je ne sais pas si j'ai été très clair, merci par avance pour vos aides !
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(); } } }
Partager