Ah!!! Fallait présiser dés le début que c'était tu .net.
On s'embrouille tous là.
For i As Integer = 1 To 5
CType(Me.Controls("ProgressBar" & CStr(i)), System.Windows.Forms.ProgressBar).Value = 10
Next i
Pour un groupe de contrôle, il faut laisser tombre le concepteur windows form et passer en dynamique.
Un petit example, mais bien d'autres sont possible.
Dim ProgressBarList As New System.Collections.Generic.List(Of System.Windows.Forms.ProgressBar)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ProgressBarList.Add(NewProgressBar(New System.Drawing.Point(10, 10), New System.Drawing.Size(100, 23), 100))
ProgressBarList.Add(NewProgressBar(New System.Drawing.Point(10, 40), New System.Drawing.Size(100, 23), 100))
ProgressBarList.Add(NewProgressBar(New System.Drawing.Point(10, 70), New System.Drawing.Size(100, 23), 100))
For Each ProgressBar As System.Windows.Forms.ProgressBar In ProgressBarList
ProgressBar.Value = 10
Next
End Sub
Private Function NewProgressBar(ByVal Location As System.Drawing.Point, ByVal Size As System.Drawing.Size, ByVal Maximum As Integer) As System.Windows.Forms.ProgressBar
Dim ProgressBar As New System.Windows.Forms.ProgressBar
ProgressBar.Location = Location
ProgressBar.Size = Size
ProgressBar.Maximum = Maximum
Me.Controls.Add(ProgressBar)
Return ProgressBar
End Function
Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 21 déc. 2005 à 20:04
Salut
Essaye cette syntaxe :
Me.Controls("progressbar" & CStr(i)).Value = 10
Sinon, mieux vaut créer un seul control initial ProgressBar et l'indexer (entre 0 et < 254).
Tu pourra simplement lui faire appel avec
Me.ProgressBar(i).Value = 10
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)