Appel d'un formulaire après le téléchargement d'une progressBar

Résolu
MINDONGO - 23 janv. 2013 à 12:43
 MINDONGO - 30 janv. 2013 à 13:02
salut,
j'ai deux formulaires, le Form que je vous présente les codes et celui du départ mais il lui faut après appeler le form2 mais je suis limiter ici
voici mes codes

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FRM1
{
    public partial class Form6 : Form
    {
        public Form6()
        {
            Timer t = new Timer(); 

            InitializeComponent();
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            progressBar1.Visible = true;
            progressBar1.Minimum = 1;
            progressBar1.Maximum = 100;
            progressBar1.Value = 1;
            Timer TM = new Timer();
            TM.Interval = 255;
            TM.Tick += new EventHandler(IncreaseProgressBar);
            TM.Start();
        }

        private void IncreaseProgressBar(object sender, EventArgs e)
        {
            progressBar1.Increment(1);
            statusBar1.Text = progressBar1.Value.ToString() + "% Terminé";
            if (progressBar1.Value == progressBar1.Maximum)
            {
                Timer TM = new Timer();
                TM.Stop();
            }
        }
        private void Form6_Load(object sender, EventArgs e)
        {

        }
    }
}



je me demande ou placer l'appel du Form2?

6 réponses

cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
25 janv. 2013 à 10:35
Salut

Oui c'est normal. Comme l'a dit jopop tu instancies trop de Timers. Il faut fair comme ca :
namespace FRM1
{
    public partial class Form6 : Form
    {
        Timer TM;

        public Form6()
        {
            InitializeComponent();
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            progressBar1.Visible = true;
            progressBar1.Minimum = 1;
            progressBar1.Maximum = 100;
            progressBar1.Value = 1;
            TM = new Timer();
            TM.Interval = 255;
            TM.Tick += new EventHandler(IncreaseProgressBar);
            TM.Start();
        }

        private void IncreaseProgressBar(object sender, EventArgs e)
        {
            progressBar1.Increment(1);
            statusBar1.Text = progressBar1.Value.ToString() + "% Terminé";
            if (progressBar1.Value == progressBar1.Maximum)
            {
                TM.Stop();
                Form2 f = new Form2();
                f.Show();
            }
        }
        private void Form6_Load(object sender, EventArgs e)
        {

        }
    }
}
et ca devrait marcher
3
cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
23 janv. 2013 à 14:15
Salut,

Il faut mettre l'appel de ton nouveau form dans le if après l’arrêt de ton timer.
 if (progressBar1.Value == progressBar1.Maximum)
            {
                Timer TM = new Timer();
                TM.Stop();
                Form2 f = new Form2();
                f.Show();
            }
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
23 janv. 2013 à 16:45
Salut,

t'instancies pas un peu trop de Timer là ?
Je connais pas bien leur fonctionnement mais ce code me parait louche.
0
salut @LOci

avec ton conseil j'ai essayé mais le form2 s'affiche en cascade donc ça ne marche pas
ici:
if (progressBar1.Value == progressBar1.Maximum)
            {
                Timer TM = new Timer();
                TM.Stop();
                Form2 f = new Form2();
                f.Show();
            }
0

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

Posez votre question
@jopop,
juste je veux que vous soyez claire
0
salut @LOci,

merci, car avec:

private void button1_Click(object sender, EventArgs e)
        {
            progressBar1.Visible = true;
            progressBar1.Minimum = 1;
            progressBar1.Maximum = 100;
            progressBar1.Value = 1;
            TM = new Timer();
            TM.Interval = 255;
            TM.Tick += new EventHandler(IncreaseProgressBar);
            TM.Start();
        }



ça marche!!!
int mindongo
0
Rejoignez-nous