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 : 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
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
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.
Yayou49