Je suis en ce moment en stage et je dois créer un logiciel en VB.NET permettant de bloquer/débloquer des postes clients depuis un poste serveur.
Sur le poste serveur, une form regroupe 20 GroupBox qui représentent 20 postes (nombre de postes maximum à contrôler).
Chaque poste est enregistré dans une base de données.
Mon problème est que chaque GroupBox possède les mêmes fonctions (même requête, mêmes objets, ...) seul un numéro les différencient. Par exemple :
- dans la GroupBox1 il y a : nomposte1, compteur1, boutonbloquer1, prix1, requete1, ...
- dans la GroupBox2 il y a : nomposte2, compteur2, boutonbloquer2, prix2, requete2, ...
- dans la GroupBox3 il y a : nomposte3, compteur3, boutonbloquer3, prix3, requete3, ...
- et ainsi de suite jusqu'à 20
Voici un extrait de mon code :
'Pour le poste 1
Mycommand1.CommandText = "SELECT * FROM poste WHERE num_poste = 1;"
'Déclaration du Reader1
Dim myReader1 As OleDbDataReader = Mycommand1.ExecuteReader()
myReader1.Read()
Label1.Text = myReader1.GetString(1)
If myReader1.GetString(1) = "-" Then
bouton_stop1.Visible = False
End If
...
'Pour le poste 2
Mycommand2.CommandText = "SELECT * FROM poste WHERE num_poste = 2;"
'Déclaration du Reader2
Dim myReader2 As OleDbDataReader = Mycommand2.ExecuteReader()
myReader2.Read()
Label2.Text = myReader2.GetString(1)
If myReader2.GetString(1) = "-" Then
bouton_stop2.Visible = False
End If
...
L'idéal serait de faire un code de ce genre :
'Pour le poste i
While i <= 20
Mycommand(i).CommandText = "SELECT * FROM poste WHERE num_poste = " & i & ";"
'Déclaration du Reader(i)
Dim myReader(i) As OleDbDataReader = Mycommand(i).ExecuteReader()
myReader(i).Read()
Label(i).Text = myReader(i).GetString(1)
If myReader(i).GetString(1) = "-" Then
bouton_stop(i).Visible = False
End If
...
Mais je sais que c'est impossible. N'y a t-il pas un moyen qui s'en rapproche ?
Merci d'avance.

Cependant je n'arrive pas à utiliser le même principe pour les PictureBox.
Je crois qu'ils ne font pas partie des contrôles.