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 :

la ProgressBar avec les données


Sujet :

C#

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut la ProgressBar avec les données
    Bonjour,
    je voudrais ajouter une progressBar (en parallèle avec l'envoie des données sur le port série).
    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
     
    private void button_envoyer_Click(object sender, EventArgs e)
            {
     
                /// recuperation des données de la textBox puis les envoyer sur le port.
                 string myValue = textBox1.Text;
     
                   if (myValue.Length > 0)
                   {
                       byte[] don = System.Text.Encoding.ASCII.GetBytes(myValue);
                       serialPort1.Write(don, 0, don.Length);
     
                   }
     
            }
    comment peut-on envoyer les données une à une ou par petits paquets, chaque paquet correspondant à une barre de la progressBar?????

  2. #2
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Bonjour, il faut jouer sur les valeur maximal et minimal de la progressbar je pense, tu fais une estimation du temps pour ton max qu'il faut et tu réajustes à chaque tour de boucle selon la progression.

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    bonjour,
    j'ai essayé avec un timer mais elle déclenche toujours après l'envoi des données.

    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
     
     public string myValue;
     public  byte[] don;
     
     private void button_envoyer_Click(object sender, EventArgs e)
            {
                toolStripStatusLabel1.Text = "Appuyez sur 'F6' de la commande numérique puis patientez...";
     
                serialPort1.Write("\u000A"); // lance la tache receveFil chr10
                while (!ison) { }
     
     myValue = textBox1.Text;
     
                     if (myValue.Length > 0)
                     {
                         don = System.Text.Encoding.ASCII.GetBytes(myValue);
     
                         serialPort1.Write(don, 0, don.Length);
                         timer2.Start();
                         }
    }
     
     private void timer2_Tick(object sender, EventArgs e)
            {
                progressBar1.Minimum = 1;
                progressBar1.Maximum = 100;
                progressBar1.Value = 1;
                progressBar1.Step = 1;
     
                for (int i = 1; i <= 100; i++)
                {
                    progressBar1.Value = i;
                    toolStripStatusLabel1.Text = progressBar1.Value.ToString() + "%" + "Télechargement en court...";
                }
                if (progressBar1.Value == 100)
                {
                    timer2.Stop();
                    toolStripStatusLabel1.Text = "Télechargement Fini";
                }    
            }

  4. #4
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    oui c'est logique tu déclenches ton timer après avoir reçu les données, pourquoi ne pas utiliser un thread ou tu place ta méthode puis dans le timer tu fais des pauses pour permettre l'affichage de la progressbar et la réception de la data je suis pas spécialiste mais je pense que c'est possible.

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/12/2005, 10h38
  2. [C#][ProgressBar]Obtenir les données depuis un autre objet
    Par Kcirtap dans le forum Windows Forms
    Réponses: 7
    Dernier message: 26/10/2005, 11h56
  3. Problème avec les données binaire
    Par Lachessis dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/08/2005, 17h38
  4. Génération de script SQL avec les données
    Par borgfabr dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/03/2004, 13h57
  5. Réponses: 13
    Dernier message: 14/10/2003, 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