Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ajout dynamique d'un groupe de contrôles

2 réponses
Avatar
sergio
Bonsoir,

J'ai placé un TableLayoutPanel sur un formulaire. Je souhaiterais remplir
chaque case de ce TableLayoutPanel avec un Label. Le nombre de cases de la
table pouvant varier.
Voici mon code :
"
.TableLayoutPanel .ColumnCount = NbrJour_semaine
.TableLayoutPanel .RowCount = 7

For i = 1 To 7 * NbrJour_semaine

grpLabel(i) = New System.Windows.Forms.Label
grpLabel(i).Text = "Label " + CStr(i)
ICol = i Mod 7
IRow = CInt(Int(i / 7)) + 1
.tlpCalendar.Controls.Add(grpLabel(i), ICol, IRow)


Next i

2 réponses

Avatar
sergio
Excusez-moi j'ai fait une mauvaise manip et j'ai envoyé le post avant d'avoir
fini :-((
Voir la suite plus bas

"sergio" wrote:

Bonsoir,

J'ai placé un TableLayoutPanel sur un formulaire. Je souhaiterais remplir
chaque case de ce TableLayoutPanel avec un Label. Le nombre de cases de la
table pouvant varier.
Voici mon code :
"
.TableLayoutPanel .ColumnCount = NbrJour_semaine
.TableLayoutPanel .RowCount = 7

For i = 1 To 7 * NbrJour_semaine

grpLabel(i) = New System.Windows.Forms.Label
grpLabel(i).Text = "Label " + CStr(i)
ICol = i Mod 7
IRow = CInt(Int(i / 7)) + 1
.tlpCalendar.Controls.Add(grpLabel(i), ICol, IRow)


Next i



Mais ce code ne convient car il me met un message d'erreur :
"La référence d'objet n'est pas définie à une instance d'un objet." pour la
première ligne juste après le For.
Au début, j'ai bien déclaré :
Dim grpLabel() As System.Windows.Forms.Label

Que dois-je faire pour résoudre ce problème ?
Merci à vous
Salutations
Serge
Avatar
Gilles TOURREAU [MVP]
"sergio" a écrit dans le message de
news:
Excusez-moi j'ai fait une mauvaise manip et j'ai envoyé le post avant
d'avoir
fini :-((
Voir la suite plus bas

"sergio" wrote:

Bonsoir,

J'ai placé un TableLayoutPanel sur un formulaire. Je souhaiterais remplir
chaque case de ce TableLayoutPanel avec un Label. Le nombre de cases de
la
table pouvant varier.
Voici mon code :
"
.TableLayoutPanel .ColumnCount = NbrJour_semaine
.TableLayoutPanel .RowCount = 7

For i = 1 To 7 * NbrJour_semaine

grpLabel(i) = New System.Windows.Forms.Label
grpLabel(i).Text = "Label " + CStr(i)
ICol = i Mod 7
IRow = CInt(Int(i / 7)) + 1
.tlpCalendar.Controls.Add(grpLabel(i), ICol, IRow)


Next i



Mais ce code ne convient car il me met un message d'erreur :
"La référence d'objet n'est pas définie à une instance d'un objet." pour
la
première ligne juste après le For.
Au début, j'ai bien déclaré :
Dim grpLabel() As System.Windows.Forms.Label

Que dois-je faire pour résoudre ce problème ?
Merci à vous
Salutations
Serge






Bonjour,

Il faudrait créer le tableau après l'avoir déclaré :

Dim tab() As Label
ReDim tab(dimensionTableau)

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr