Appel d'un formulaire après le téléchargement d'une progressBar [Résolu]

- - Dernière réponse :  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?
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Dernière intervention
11 juin 2013
8
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_L0ci
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Dernière intervention
11 juin 2013
8
0
Merci
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();
            }
Commenter la réponse de cs_L0ci
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
10
0
Merci
Salut,

t'instancies pas un peu trop de Timer là ?
Je connais pas bien leur fonctionnement mais ce code me parait louche.
Commenter la réponse de cs_jopop
0
Merci
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();
            }
Commenter la réponse de MINDONGO
0
Merci
@jopop,
juste je veux que vous soyez claire
Commenter la réponse de MINDONGO
0
Merci
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
Commenter la réponse de MINDONGO

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.