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
et le code de la form2
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 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
Par avance, merci à tous pour vos réponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Yayou49
Partager