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

VB.NET Discussion :

Programmation de progressbar


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut Programmation de progressbar
    Bonjour,

    Je voudrai savoir comment on programme une progressbar ??

    Si quelqu'un a le code je prend merci !!

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    ca existe déjà dans le framework

    sinon c'est plutot trivial ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    peut- tu exprimer ta pensée parce que au cas ou tu l'avais pas remarqué je suis un vrai noub ^^

    Merci de ton aide

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Par défaut
    Tu veux dire comment faire évoluer la barre en fonction du traitement ?
    Si c'est ça, en gros, il faut que tu utilises un compteur. Tu parcours un While ou un for au moment où tu as besoin de cette progress bar ?

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    En fait j'ai une form est je veux que la progressbar évolue en fonction du traitement comme tu l'a souligné mais il n'y pas de boucle dans mon code.
    J'ai vu sur quelques forums qu'il fallait utiliser un timer mais je ne sais comment ??

    encore merci

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Par défaut
    Regarde ce que Pol a mis comme lien c'est clair ^^

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    ok ^^

    Merci les gars !!*

  9. #9
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Sinon au niveau graphique si cela peut t'aider :

    Moi je l'utilise dans une boucle perso, donc à adapter pour un timer :

    Ca c'est dans une boucle sur incrémentation de "i"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                With Progressbar
     
                    .Progressbar(KnownColor.White, KnownColor.Green, i)
                    .pict1.Image = imgp
                    .pict1.Refresh()
                    .Label1.Refresh()
                    .Label2.Refresh()
     
                End With
    Ca c'est la génération des images :

    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
        Public Function Progressbar(ByVal couleur1 As KnownColor, ByVal couleur2 As KnownColor, ByVal val As Integer)
     
            Dim g As Graphics = Graphics.FromImage(imgp)
            Dim police As New Font("microsoft sans serif", 8, FontStyle.Bold)
            Dim pinceau As New SolidBrush(Color.Black)
            Dim mypen1 As New Pen(Color.Black, 2)
            Dim myBrush1 As LinearGradientBrush = Nothing
            Dim myBrush2 As LinearGradientBrush = Nothing
            Dim cadre As New Rectangle(0, 0, 220, 26)
     
     
            Dim rect As New Rectangle(0, 0, val * 220 / maxfichier, 26)
     
            myBrush1 = New LinearGradientBrush(cadre, Color.FromArgb(100, Color.White), Color.FromArgb(100, Color.DarkGray), LinearGradientMode.Vertical)
            g.FillRectangle(myBrush1, cadre)
     
            If Int(val * 220 / maxfichier) = 0 Then
     
                g.DrawString(Format("0 %").ToString, police, pinceau, 97, 6)
     
            Else
     
                myBrush2 = New LinearGradientBrush(rect, Color.FromKnownColor(couleur1), Color.FromKnownColor(couleur2), LinearGradientMode.Vertical)
                g.DrawRectangle(Pens.DarkGreen, rect)
                g.FillRectangle(myBrush2, rect)
                g.DrawString(Int(val * 100 / maxfichier) & " %", police, pinceau, 97, 6)
     
            End If
     
            g.DrawRectangle(mypen1, 0, 0, 220, 26)
     
     
            Return imgp
     
        End Function
    '220 correspond à la taille de ma progressbar
    'maxfichier correspondant à mon nombre max d'itération, donc toi ton temps max
    'val correspond à mon incrémentation soit "i", dans ton cas l'intervalle du timer

    Juste la fonction à appeler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Progressbar(KnownColor.White, KnownColor.Green, i)
    Tu peux choisir les combinaisons de couleur que tu souhaites avec les deux paramètres couleurs dans l'appel de la fonction pour la barre d'avancement, et pour la barre de fond (en gris dans l'exemple directement dans le code).

    Après il faut adapter.

    Rendu :

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

Discussions similaires

  1. [Débutant] Programme avec progressbar
    Par adelcrb dans le forum C#
    Réponses: 5
    Dernier message: 10/07/2013, 19h28
  2. [XL-2007] Problème de programmation de ProgressBar
    Par sparz dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/05/2013, 08h47
  3. Progressbar le temps de l'installation d'un programme
    Par pricrot dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 30/05/2007, 22h38
  4. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 11h07
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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