je voudrais ajouter des contrôles (label,listbox) dynamiquement, mais je
voudrais les créer dans une procédure; le problème c'est qu'alors ces
contrôles ne sont accessibles que dans la procédure précédente.Comment faire
pour qu'ils soient accessibles partout (et notamment dans le module Form1, où
VS placera les procédures associées aux événements)?
Tiens voila un code qui marche, il te reste la boucle à mettre au point Dans ton exemple tu ajoutes toujours le meme et unique objet...
Une form avec un bouton Public Class Form1 Inherits System.Windows.Forms.Form (1) Dim idx As Integer = 0 Dim LeftPos As Integer = 10 Dim TopPos As Integer = 10
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click idx = idx + 1 Dim MyLabel As New Label '(2) 'Position the new label With MyLabel .Text = "Dynamique label " + CStr(idx) .BackColor = Color.Bisque .Left = LeftPos .Top = TopPos + 30 TopPos = TopPos + 30 .Width = 160 .Height = 20 End With Me.Controls.Add(MyLabel) '(3)
End Sub End Class
Olivier57b a écrit :
Voilà le code:
L'idée, c'est d'afficher un nombre variable de labels(et aussi, ailleurs, des textbox) dans cette procédure, en fonction de CatPar qui est la chaîne à afficher, et de CatCNbPar qui est l'indice de la chaîne, et qui sert à désigner l'endroit où afficher le label.Je pense que VB bloque car tous les labels qui sont crées sont les mêmes: il n'a plus le moyen de les indentifier.Mais retournons au code:
Sub AfficheCatC(ByVal CatCPar As String, ByVal CatCNbPAr As Integer)
pnlCat.Controls.Add(New Label)
Dim ptSupG As New Point(68 + 232 * (CatCNbPAr - 1), 182) ' NB : ne pas oublier le -1 ' Il faut aussi redimensionner le formulaire pnlCat.Controls.Item(CatCNbPAr - 1).Location = ptSupG Dim FonteFam1 As New FontFamily("Prime Minister of Canada") Dim Police1 As New Font(FonteFam1, 20, FontStyle.Regular, GraphicsUnit.Pixel) pnlCat.Controls.Item(CatCNbPAr - 1).Font = Police1 pnlCat.Controls.Item(CatCNbPAr - 1).Text = CatCPar Controls.Add(pnlCat.Controls.Item(CatCNbPAr - 1))
End Sub
Merci pour votre aide, Olivier57b.
Tiens voila un code qui marche, il te reste la boucle à
mettre au point
Dans ton exemple tu ajoutes toujours le meme et unique objet...
Une form avec un bouton
Public Class Form1
Inherits System.Windows.Forms.Form (1)
Dim idx As Integer = 0
Dim LeftPos As Integer = 10
Dim TopPos As Integer = 10
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
idx = idx + 1
Dim MyLabel As New Label '(2)
'Position the new label
With MyLabel
.Text = "Dynamique label " + CStr(idx)
.BackColor = Color.Bisque
.Left = LeftPos
.Top = TopPos + 30
TopPos = TopPos + 30
.Width = 160
.Height = 20
End With
Me.Controls.Add(MyLabel) '(3)
End Sub
End Class
Olivier57b a écrit :
Voilà le code:
L'idée, c'est d'afficher un nombre variable de labels(et aussi, ailleurs,
des textbox) dans cette procédure, en fonction de CatPar qui est la chaîne à
afficher, et de CatCNbPar qui est l'indice de la chaîne, et qui sert à
désigner l'endroit où afficher le label.Je pense que VB bloque car tous les
labels qui sont crées sont les mêmes: il n'a plus le moyen de les
indentifier.Mais retournons au code:
Sub AfficheCatC(ByVal CatCPar As String, ByVal CatCNbPAr As Integer)
pnlCat.Controls.Add(New Label)
Dim ptSupG As New Point(68 + 232 * (CatCNbPAr - 1), 182)
' NB : ne pas oublier le -1
' Il faut aussi redimensionner le formulaire
pnlCat.Controls.Item(CatCNbPAr - 1).Location = ptSupG
Dim FonteFam1 As New FontFamily("Prime Minister of Canada")
Dim Police1 As New Font(FonteFam1, 20, FontStyle.Regular,
GraphicsUnit.Pixel)
pnlCat.Controls.Item(CatCNbPAr - 1).Font = Police1
pnlCat.Controls.Item(CatCNbPAr - 1).Text = CatCPar
Controls.Add(pnlCat.Controls.Item(CatCNbPAr - 1))
Tiens voila un code qui marche, il te reste la boucle à mettre au point Dans ton exemple tu ajoutes toujours le meme et unique objet...
Une form avec un bouton Public Class Form1 Inherits System.Windows.Forms.Form (1) Dim idx As Integer = 0 Dim LeftPos As Integer = 10 Dim TopPos As Integer = 10
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click idx = idx + 1 Dim MyLabel As New Label '(2) 'Position the new label With MyLabel .Text = "Dynamique label " + CStr(idx) .BackColor = Color.Bisque .Left = LeftPos .Top = TopPos + 30 TopPos = TopPos + 30 .Width = 160 .Height = 20 End With Me.Controls.Add(MyLabel) '(3)
End Sub End Class
Olivier57b a écrit :
Voilà le code:
L'idée, c'est d'afficher un nombre variable de labels(et aussi, ailleurs, des textbox) dans cette procédure, en fonction de CatPar qui est la chaîne à afficher, et de CatCNbPar qui est l'indice de la chaîne, et qui sert à désigner l'endroit où afficher le label.Je pense que VB bloque car tous les labels qui sont crées sont les mêmes: il n'a plus le moyen de les indentifier.Mais retournons au code:
Sub AfficheCatC(ByVal CatCPar As String, ByVal CatCNbPAr As Integer)
pnlCat.Controls.Add(New Label)
Dim ptSupG As New Point(68 + 232 * (CatCNbPAr - 1), 182) ' NB : ne pas oublier le -1 ' Il faut aussi redimensionner le formulaire pnlCat.Controls.Item(CatCNbPAr - 1).Location = ptSupG Dim FonteFam1 As New FontFamily("Prime Minister of Canada") Dim Police1 As New Font(FonteFam1, 20, FontStyle.Regular, GraphicsUnit.Pixel) pnlCat.Controls.Item(CatCNbPAr - 1).Font = Police1 pnlCat.Controls.Item(CatCNbPAr - 1).Text = CatCPar Controls.Add(pnlCat.Controls.Item(CatCNbPAr - 1))
End Sub
Merci pour votre aide, Olivier57b.
Olivier57b
Megaten,
Je te remercie pour le programme que tu m'as donné.Je l'ai essayé et cela marche au poil. Je vais essayer de transposer dans mon programme, si cela ne marche pas, je te ferai savoir pourquoi mais je crois que maintenant, je suis sur la bonne piste.
Merci encore de m'avoir aidé!
Olivier57b.
Megaten,
Je te remercie pour le programme que tu m'as donné.Je l'ai essayé et cela
marche au poil. Je vais essayer de transposer dans mon programme, si cela ne
marche pas, je te ferai savoir pourquoi mais je crois que maintenant, je suis
sur la bonne piste.
Je te remercie pour le programme que tu m'as donné.Je l'ai essayé et cela marche au poil. Je vais essayer de transposer dans mon programme, si cela ne marche pas, je te ferai savoir pourquoi mais je crois que maintenant, je suis sur la bonne piste.
Merci encore de m'avoir aidé!
Olivier57b.
Olivier57b
Megaten,
J'ai (presque) réussi ma procédure, mais un nouveau problème est apparu.Voici la procédure tout d'abord:
Sub AffichePdt(ByVal CatCNbPAr As Integer, ByVal PdtNbPar As Integer, ByVal pdtPar As String)
Dim FonteFam1 As New FontFamily("Georgia") Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular, GraphicsUnit.Pixel)
'checkBox Dim myChkBox As New CheckBox() With myChkBox 'Pour le nom, on commence par Ckb 1.1 .Name = "Ckb " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = "" .Left = 26 + 232 * (CatCNbPAr - 1) 'PdtNbPar commence à 1 .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(myChkBox) Refresh()
'label du pdt Dim MyLabel As New Label() 'Position the new label With MyLabel .Name = "lbl " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = pdtPar .Left = 47 + 232 * (CatCNbPAr - 1) .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(MyLabel) Refresh()
Les paramètres sont les coordonnées CatCNbPar et PdtNbPar, et pour chaque coordonnée, j'affiche une checkBox, un label (et dans la suite de la procédure, deux textBox mais cela importe peu), label dont la chaîne est pdtPar.Voici mon problème: le code ci-dessus n'affiche que les checkBox, et pas les labels. Par contre, si j'enlève les checkBox, les lavels s'affichent correctement... Je n'y comprends rien. Au total, il y a une dizaine de contrôles dans Me.Controls; ça n'est pas beaucoup...
Avez-vous une idée?
> Merci pour votre aide, Olivier57b. >
Megaten,
J'ai (presque) réussi ma procédure, mais un nouveau problème est
apparu.Voici la procédure tout d'abord:
Sub AffichePdt(ByVal CatCNbPAr As Integer, ByVal PdtNbPar As Integer, ByVal
pdtPar As String)
Dim FonteFam1 As New FontFamily("Georgia")
Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular,
GraphicsUnit.Pixel)
'checkBox
Dim myChkBox As New CheckBox()
With myChkBox
'Pour le nom, on commence par Ckb 1.1
.Name = "Ckb " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar
+ 1, String)
.Text = ""
.Left = 26 + 232 * (CatCNbPAr - 1)
'PdtNbPar commence à 1
.Top = 226 + 20 * PdtNbPar
.Font = Police1
'.Width = 160
'.Height = 20
End With
Me.Controls.Add(myChkBox)
Refresh()
'label du pdt
Dim MyLabel As New Label()
'Position the new label
With MyLabel
.Name = "lbl " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar
+ 1, String)
.Text = pdtPar
.Left = 47 + 232 * (CatCNbPAr - 1)
.Top = 226 + 20 * PdtNbPar
.Font = Police1
'.Width = 160
'.Height = 20
End With
Me.Controls.Add(MyLabel)
Refresh()
Les paramètres sont les coordonnées CatCNbPar et PdtNbPar, et pour chaque
coordonnée, j'affiche une checkBox, un label (et dans la suite de la
procédure, deux textBox mais cela importe peu), label dont la chaîne est
pdtPar.Voici mon problème: le code ci-dessus n'affiche que les checkBox, et
pas les labels. Par contre, si j'enlève les checkBox, les lavels s'affichent
correctement... Je n'y comprends rien. Au total, il y a une dizaine de
contrôles dans Me.Controls; ça n'est pas beaucoup...
J'ai (presque) réussi ma procédure, mais un nouveau problème est apparu.Voici la procédure tout d'abord:
Sub AffichePdt(ByVal CatCNbPAr As Integer, ByVal PdtNbPar As Integer, ByVal pdtPar As String)
Dim FonteFam1 As New FontFamily("Georgia") Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular, GraphicsUnit.Pixel)
'checkBox Dim myChkBox As New CheckBox() With myChkBox 'Pour le nom, on commence par Ckb 1.1 .Name = "Ckb " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = "" .Left = 26 + 232 * (CatCNbPAr - 1) 'PdtNbPar commence à 1 .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(myChkBox) Refresh()
'label du pdt Dim MyLabel As New Label() 'Position the new label With MyLabel .Name = "lbl " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = pdtPar .Left = 47 + 232 * (CatCNbPAr - 1) .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(MyLabel) Refresh()
Les paramètres sont les coordonnées CatCNbPar et PdtNbPar, et pour chaque coordonnée, j'affiche une checkBox, un label (et dans la suite de la procédure, deux textBox mais cela importe peu), label dont la chaîne est pdtPar.Voici mon problème: le code ci-dessus n'affiche que les checkBox, et pas les labels. Par contre, si j'enlève les checkBox, les lavels s'affichent correctement... Je n'y comprends rien. Au total, il y a une dizaine de contrôles dans Me.Controls; ça n'est pas beaucoup...
Avez-vous une idée?
> Merci pour votre aide, Olivier57b. >
Megaten
Donne un couleur au background de ton label .BackColor = Color.Bisque et tu le verras. Par contre il n'y a rien dedans
Olivier57b a écrit :
Megaten,
J'ai (presque) réussi ma procédure, mais un nouveau problème est apparu.Voici la procédure tout d'abord:
Sub AffichePdt(ByVal CatCNbPAr As Integer, ByVal PdtNbPar As Integer, ByVal pdtPar As String)
Dim FonteFam1 As New FontFamily("Georgia") Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular, GraphicsUnit.Pixel)
'checkBox Dim myChkBox As New CheckBox() With myChkBox 'Pour le nom, on commence par Ckb 1.1 .Name = "Ckb " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = "" .Left = 26 + 232 * (CatCNbPAr - 1) 'PdtNbPar commence à 1 .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(myChkBox) Refresh()
'label du pdt Dim MyLabel As New Label() 'Position the new label With MyLabel .Name = "lbl " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = pdtPar .Left = 47 + 232 * (CatCNbPAr - 1) .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(MyLabel) Refresh()
Les paramètres sont les coordonnées CatCNbPar et PdtNbPar, et pour chaque coordonnée, j'affiche une checkBox, un label (et dans la suite de la procédure, deux textBox mais cela importe peu), label dont la chaîne est pdtPar.Voici mon problème: le code ci-dessus n'affiche que les checkBox, et pas les labels. Par contre, si j'enlève les checkBox, les lavels s'affichent correctement... Je n'y comprends rien. Au total, il y a une dizaine de contrôles dans Me.Controls; ça n'est pas beaucoup...
Avez-vous une idée?
Merci pour votre aide, Olivier57b.
Donne un couleur au background de ton label
.BackColor = Color.Bisque
et tu le verras.
Par contre il n'y a rien dedans
Olivier57b a écrit :
Megaten,
J'ai (presque) réussi ma procédure, mais un nouveau problème est
apparu.Voici la procédure tout d'abord:
Sub AffichePdt(ByVal CatCNbPAr As Integer, ByVal PdtNbPar As Integer, ByVal
pdtPar As String)
Dim FonteFam1 As New FontFamily("Georgia")
Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular,
GraphicsUnit.Pixel)
'checkBox
Dim myChkBox As New CheckBox()
With myChkBox
'Pour le nom, on commence par Ckb 1.1
.Name = "Ckb " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar
+ 1, String)
.Text = ""
.Left = 26 + 232 * (CatCNbPAr - 1)
'PdtNbPar commence à 1
.Top = 226 + 20 * PdtNbPar
.Font = Police1
'.Width = 160
'.Height = 20
End With
Me.Controls.Add(myChkBox)
Refresh()
'label du pdt
Dim MyLabel As New Label()
'Position the new label
With MyLabel
.Name = "lbl " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar
+ 1, String)
.Text = pdtPar
.Left = 47 + 232 * (CatCNbPAr - 1)
.Top = 226 + 20 * PdtNbPar
.Font = Police1
'.Width = 160
'.Height = 20
End With
Me.Controls.Add(MyLabel)
Refresh()
Les paramètres sont les coordonnées CatCNbPar et PdtNbPar, et pour chaque
coordonnée, j'affiche une checkBox, un label (et dans la suite de la
procédure, deux textBox mais cela importe peu), label dont la chaîne est
pdtPar.Voici mon problème: le code ci-dessus n'affiche que les checkBox, et
pas les labels. Par contre, si j'enlève les checkBox, les lavels s'affichent
correctement... Je n'y comprends rien. Au total, il y a une dizaine de
contrôles dans Me.Controls; ça n'est pas beaucoup...
Donne un couleur au background de ton label .BackColor = Color.Bisque et tu le verras. Par contre il n'y a rien dedans
Olivier57b a écrit :
Megaten,
J'ai (presque) réussi ma procédure, mais un nouveau problème est apparu.Voici la procédure tout d'abord:
Sub AffichePdt(ByVal CatCNbPAr As Integer, ByVal PdtNbPar As Integer, ByVal pdtPar As String)
Dim FonteFam1 As New FontFamily("Georgia") Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular, GraphicsUnit.Pixel)
'checkBox Dim myChkBox As New CheckBox() With myChkBox 'Pour le nom, on commence par Ckb 1.1 .Name = "Ckb " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = "" .Left = 26 + 232 * (CatCNbPAr - 1) 'PdtNbPar commence à 1 .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(myChkBox) Refresh()
'label du pdt Dim MyLabel As New Label() 'Position the new label With MyLabel .Name = "lbl " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = pdtPar .Left = 47 + 232 * (CatCNbPAr - 1) .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(MyLabel) Refresh()
Les paramètres sont les coordonnées CatCNbPar et PdtNbPar, et pour chaque coordonnée, j'affiche une checkBox, un label (et dans la suite de la procédure, deux textBox mais cela importe peu), label dont la chaîne est pdtPar.Voici mon problème: le code ci-dessus n'affiche que les checkBox, et pas les labels. Par contre, si j'enlève les checkBox, les lavels s'affichent correctement... Je n'y comprends rien. Au total, il y a une dizaine de contrôles dans Me.Controls; ça n'est pas beaucoup...
Avez-vous une idée?
Merci pour votre aide, Olivier57b.
Megaten
Par defaut label.backcolor doit prendre la couleur de son container. Comme il n'y a pas de text le label apparait ton sur ton donc rien de visible. Michel
Olivier57b a écrit :
Megaten,
J'ai (presque) réussi ma procédure, mais un nouveau problème est apparu.Voici la procédure tout d'abord:
Sub AffichePdt(ByVal CatCNbPAr As Integer, ByVal PdtNbPar As Integer, ByVal pdtPar As String)
Dim FonteFam1 As New FontFamily("Georgia") Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular, GraphicsUnit.Pixel)
'checkBox Dim myChkBox As New CheckBox() With myChkBox 'Pour le nom, on commence par Ckb 1.1 .Name = "Ckb " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = "" .Left = 26 + 232 * (CatCNbPAr - 1) 'PdtNbPar commence à 1 .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(myChkBox) Refresh()
'label du pdt Dim MyLabel As New Label() 'Position the new label With MyLabel .Name = "lbl " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = pdtPar .Left = 47 + 232 * (CatCNbPAr - 1) .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(MyLabel) Refresh()
Les paramètres sont les coordonnées CatCNbPar et PdtNbPar, et pour chaque coordonnée, j'affiche une checkBox, un label (et dans la suite de la procédure, deux textBox mais cela importe peu), label dont la chaîne est pdtPar.Voici mon problème: le code ci-dessus n'affiche que les checkBox, et pas les labels. Par contre, si j'enlève les checkBox, les lavels s'affichent correctement... Je n'y comprends rien. Au total, il y a une dizaine de contrôles dans Me.Controls; ça n'est pas beaucoup...
Avez-vous une idée?
Merci pour votre aide, Olivier57b.
Par defaut label.backcolor doit prendre la couleur de son container.
Comme il n'y a pas de text le label apparait ton sur ton donc rien de visible.
Michel
Olivier57b a écrit :
Megaten,
J'ai (presque) réussi ma procédure, mais un nouveau problème est
apparu.Voici la procédure tout d'abord:
Sub AffichePdt(ByVal CatCNbPAr As Integer, ByVal PdtNbPar As Integer, ByVal
pdtPar As String)
Dim FonteFam1 As New FontFamily("Georgia")
Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular,
GraphicsUnit.Pixel)
'checkBox
Dim myChkBox As New CheckBox()
With myChkBox
'Pour le nom, on commence par Ckb 1.1
.Name = "Ckb " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar
+ 1, String)
.Text = ""
.Left = 26 + 232 * (CatCNbPAr - 1)
'PdtNbPar commence à 1
.Top = 226 + 20 * PdtNbPar
.Font = Police1
'.Width = 160
'.Height = 20
End With
Me.Controls.Add(myChkBox)
Refresh()
'label du pdt
Dim MyLabel As New Label()
'Position the new label
With MyLabel
.Name = "lbl " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar
+ 1, String)
.Text = pdtPar
.Left = 47 + 232 * (CatCNbPAr - 1)
.Top = 226 + 20 * PdtNbPar
.Font = Police1
'.Width = 160
'.Height = 20
End With
Me.Controls.Add(MyLabel)
Refresh()
Les paramètres sont les coordonnées CatCNbPar et PdtNbPar, et pour chaque
coordonnée, j'affiche une checkBox, un label (et dans la suite de la
procédure, deux textBox mais cela importe peu), label dont la chaîne est
pdtPar.Voici mon problème: le code ci-dessus n'affiche que les checkBox, et
pas les labels. Par contre, si j'enlève les checkBox, les lavels s'affichent
correctement... Je n'y comprends rien. Au total, il y a une dizaine de
contrôles dans Me.Controls; ça n'est pas beaucoup...
Par defaut label.backcolor doit prendre la couleur de son container. Comme il n'y a pas de text le label apparait ton sur ton donc rien de visible. Michel
Olivier57b a écrit :
Megaten,
J'ai (presque) réussi ma procédure, mais un nouveau problème est apparu.Voici la procédure tout d'abord:
Sub AffichePdt(ByVal CatCNbPAr As Integer, ByVal PdtNbPar As Integer, ByVal pdtPar As String)
Dim FonteFam1 As New FontFamily("Georgia") Dim Police1 As New Font(FonteFam1, 10, FontStyle.Regular, GraphicsUnit.Pixel)
'checkBox Dim myChkBox As New CheckBox() With myChkBox 'Pour le nom, on commence par Ckb 1.1 .Name = "Ckb " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = "" .Left = 26 + 232 * (CatCNbPAr - 1) 'PdtNbPar commence à 1 .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(myChkBox) Refresh()
'label du pdt Dim MyLabel As New Label() 'Position the new label With MyLabel .Name = "lbl " & CType(CatCNbPAr, String) & "." & CType(PdtNbPar + 1, String) .Text = pdtPar .Left = 47 + 232 * (CatCNbPAr - 1) .Top = 226 + 20 * PdtNbPar .Font = Police1 '.Width = 160 '.Height = 20 End With Me.Controls.Add(MyLabel) Refresh()
Les paramètres sont les coordonnées CatCNbPar et PdtNbPar, et pour chaque coordonnée, j'affiche une checkBox, un label (et dans la suite de la procédure, deux textBox mais cela importe peu), label dont la chaîne est pdtPar.Voici mon problème: le code ci-dessus n'affiche que les checkBox, et pas les labels. Par contre, si j'enlève les checkBox, les lavels s'affichent correctement... Je n'y comprends rien. Au total, il y a une dizaine de contrôles dans Me.Controls; ça n'est pas beaucoup...