Bonjour,
Je voudrai savoir comment on programme une progressbar ??
Si quelqu'un a le code je prend merci !!![]()
Bonjour,
Je voudrai savoir comment on programme une progressbar ??
Si quelqu'un a le code je prend merci !!![]()
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
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 ?
pour les noobs c'est ici :
http://plasserre.developpez.com/cours/vb-net/
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![]()
Regarde ce que Pol a mis comme lien c'est clair ^^
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"
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 With Progressbar .Progressbar(KnownColor.White, KnownColor.Green, i) .pict1.Image = imgp .pict1.Refresh() .Label1.Refresh() .Label2.Refresh() End With
'220 correspond à la taille de ma progressbar
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
'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 :
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part Progressbar(KnownColor.White, KnownColor.Green, i)
Après il faut adapter.
Rendu :
Partager