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 :
Je m'y perd un peu avec l'histoire des images mais je t'explique juste le fonctionnement de ma progressbar:
- Fenetre qui permet de se logger à l'application.
- Cette fenetre ouvre soit la page d'accueil si le login et mot de passe sont corrects, soit un msgbox en cas de non fonctionnement.
- Dans les deux affichages je veux que la progressbar fonctionne jusqu'à ce que la form ou la msgbox s'ouvre.
- ou sinon utiliser ma progressbar avec un timer
Et je suis allez voir le cours VB.net, mais je n'est pas tout compris vu que l'exemple ne s'apparente pas à mon problème.
Merci à tous de votre aide !!
J'avais juste compris que le "look" de la progressbar des contrôles de Visual Studio ne te plaisait pas, donc je t'ai montré comment je générais entièrement ma progressbar pour avoir un rendu plus "beau".
Si ton problème est d'ordre technique et non esthetique, utilise le contrôle de base de visual studio.
Qui plus est je ne vois pas où est ton problème.
Une progressbar est la représentation graphique d'une progression. Dans ton cas qu'elle est la progression en question ? Est-ce que cette progression est toujours la même où est-elle variable ?
salut ;
voici un progressbar avec un timer ; (ca na rien avoir avec le chargement de la progressbar ; c'est juste une decoration)
dans le code du timer:
et dans le code du formulaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick ProgressBar1.Value += 5 If ProgressBar1.Value = 100 Then Timer1.Stop() Me.Hide() Gestion_facturation.Show() End If End Sub
si tu veux faire en fonction de chargement des elements de ton form. progressbar n'as pas de role dans ton cas (ni de decoration) ; car le messagebox va s'afficher tout de suite sans laisser le progressbar agir; cependant ; le code que je t'ai envoyé attends jusqu'a le chargement du progressbar puis il affiche le form d'accueil ; compris?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Start() End Sub![]()
je veux dire ; ca n a rien a voir avec le chargement des composants de l'application.*(ca na rien avoir avec le chargement de la progressbar ; c'est juste une decoration )
Merci de votre aide
J'ai réussi à programmer la progressbar
Encore merci a vous !!
bonjour,
je me permet de vous demander le code qui ta permi de developpez le progressbar en fonction de ton traitement je cherche sur internet. merci d'avance
Partager