Progress bar dans un nouveau thread ?
Bonjour,
Voici les éléments de base de mon problème:
J'ai une form1 sur laquelle je met une Progress Bar nommée "PB" en mode visible = false.
Dans cette form, j'ai une public sub nommée "Barre" qui va initialiser la Progress bar avec un certain nombre de valeurs.
J'ajoute au projet une form2 qui Inherits de la form1.
Sur cette form2, j'ajoute un bouton "BtGo" qui va effectuer 3 taches:
La première va faire appel à ma sub "Barre" avec le paramètre True (rendre visible la Progress barre)
La deuxième va effectuer un traitement assez long
La troisième va faire appel à ma sub "Barre" avec le paramètre false (rendre invisible la Progress barre)
L'objectif est que lorsque j'appuie sur le bouton "BtGo", la Progress barre devienne visible, que mon traitement long se fasse et qu'à la fin la Progress barre devienne invisible.
(il faut noter que je ne gere pas ici le pourcentage d'avancement de la tache. Ma progress barre aura la valeur Max-1 dés le départ)
Le problème:
La Progress barre ne s'affiche qu'à la fin de mon traitement long.
Prérogative:
Je ne souhaite pas utiliser un BackGroundWorker pour l'appel à ma sub "Barre"
Je souhaite que le code qui est dans "BtGo" reste tel qu'il est (dans la mesure du possible) et que tout se fasse dans la sub "Barre"
J'ai essayé de créer un nouveau thread mais je ne sais pas gérer les inter-Thread.....
Code:
Voici le code de la form1
Code:
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
| Public Class Form1
Public Sub Barre(ByVal Start As Boolean)
If Start = True Then
'*** Paramétrage de la Progress Bar ***
Pb.Minimum = 0
Pb.Maximum = 5000
Pb.Value = 4999 'Valeur maximum - 1
Dim Pos As New System.Drawing.Point
Pos.X = 0
Pos.Y = 10
Pb.Location = Pos
'on defini la largeur de la barre, égale à la largeur de la form.
Pb.Width = Me.Width
Pb.Visible = True 'parce que la progress bar est visible(false) dans la form1
Else
Pb.Visible = False
End If
End Sub
End Class |
et le code de la form2
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Public Class Form2
Inherits Form1
Private Sub BtGo_Click(sender As System.Object, e As System.EventArgs) Handles BtGo.Click
'rendre la progress barre visible
Barre(True)
'appel au traitement long
'.......
'rendre la progress barre invisible
Barre(False)
End Sub
End Class |
Par avance, merci à tous pour vos réponses. :calim2:
Yayou49