Bonsoir tous le monde,
J'ai un petit soucis, je n'arrive pas à voir ma barre de progression au chargement du formulaire bien que j'ai mis mon LoadData dans Form1.shown :
C'est pour ainsi dire la première fois que je mets en place ce type d'affichage qui devra fonctionner depuis n'importe quel Threads et j'aimerais avoir des avis aussi si il y a un truc qui pourrait être amélioré car je suis prêt à changer le code si besoin.

EDIT : Ouhhh ça patine sévère lol. En fait je crois que je suis fatigué, j'ai oublié de créer le Thread pour charger les données.
En fait ma question porte plus sur le fait que je vais devoir manipuler d'autres propriétés de ma ToolStripProgressBar (.visible par exemple) et je vais devoir multiplier les procédure Invoquer (une pour chaque propriété ?!) ou passer des arguments mais je ne sais pas comment faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
   Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        Call LoadData()
    End Sub
Dans mon LoadData j'ai mis çà :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
    Private Sub LoadData()
        ' Chargement des données :
        Dim Count As Integer
        Dim Totale As Integer = Directory.GetDirectories(Options.AC_Doc_Directory & "\setups").Length
        For Each Folder As String In Directory.GetDirectories(Options.AC_Doc_Directory & "\setups")
            Count += 1
            .........
            SetProgress(CSng(Count / Totale))
        Next
 
    End Sub
et j'invoque l'affichage comme ceci :
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
   Private PProgress As Single
    Private Message As String
    Public Sub SetProgress(ByVal PProgress As Single)
        Me.PProgress = PProgress
        InvoquerAffichage()
    End Sub
    Public Sub SetMessage(ByVal Message As String)
        Me.Message = Message
        InvoquerAffichage()
    End Sub
    Delegate Sub DelegateAffiche()
    Private Sub InvoquerAffichage()
        'Dim MyDelegate As New DelegateAffichage(AddressOf Affiche2)
        ' InvokeRequired compare l'ID du thread appelant à l'ID du thread qui a créé le controle. Si ces threads sont différent, renvoie true.
        If Me.InvokeRequired Then
            Dim MyDelegate As New DelegateAffiche(AddressOf Affiche)  ' Sub Affiche2
            'ToolStripProgressBar1.Invoke(MyDelegate)
            Me.Invoke(MyDelegate)
        Else
            Call Affiche()
        End If
    End Sub
 
    Private Sub Affiche()
        ToolStripProgressBar1.Value = CInt(Me.PProgress)
        ToolStripStatusLabel1.Text = Me.Message
    End Sub
Merci beaucoup pour votre aide.