koadig
Messages postés3Date d'inscriptionmardi 9 mai 2006StatutMembreDernière intervention25 mars 2007
-
22 mars 2007 à 22:40
koadig
Messages postés3Date d'inscriptionmardi 9 mai 2006StatutMembreDernière intervention25 mars 2007
-
25 mars 2007 à 09:56
hello,
Je voudrais faire référence à un nom de label grace à une variable de type String.
Comment faire ?
exemple(pour un label du nom de "Kiki5") :
Dim x as string = "Kiki5"
x.text = "raté!"
ça marche pas. Bien sur, je comprends qu'il reste bloqué sur le coté String du "kiki5".
Dim x As Object = Kiki5
x.text = "gagné!"
la ça marche mais ça ne m'interesse pas.
voila ce que je voudrais (j'aurais du commencer par là) pour des labels nommés "lab1", "lab2", "lab3":
For j As Integer = 1 To 3
Dim MyNam As String=string.Format("lab{0}", j)
MyNam.BackColor = Color.red
Next j
pouvez vous m'aider ?
Merci
koadig
Messages postés3Date d'inscriptionmardi 9 mai 2006StatutMembreDernière intervention25 mars 2007 25 mars 2007 à 09:56
Merci à toi.
Ce que tu me repond est vraimetn passionnant.
Je note. (qu'est ce qui ne l'est pas pour un débutant ?)
Pour ce qui est de mon problème, je l'ai résolu differement.
Dim Con As Control
Dim Lab As Label
Dim ZeTransform As String
For j As Integer = 1 To 18
ZeTransform = j
Con = Me.Controls(Me.Controls.IndexOfKey("Lab" + ZeTransform))
Lab = CType(Con, Label)
Lab.BackColor = Color.AliceBlue
Next j
(Controls contient en fait la liste des contrôles)
voila.
Merci quand même.
koadig
Messages postés3Date d'inscriptionmardi 9 mai 2006StatutMembreDernière intervention25 mars 2007 22 mars 2007 à 22:45
hello, Je voudrais faire référence à un nom de label grace à une variable de type String. Comment faire ?
voila ce que je voudrais (j'aurais du commencer par là) pour des labels nommés "lab1", "lab2", "lab3":
For j As Integer = 1 To 3
Dim MyNam As String=string.Format("lab{0}", j)
MyNam.BackColor = Color.red
Next j pouvez vous m'aider ?
Merci
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 24 mars 2007 à 10:52
Salut,
J'ai trouvé cà :
Tout d'abord, il faut mettre çà juste après Public Class Form1 :
Dim Browsers As New System.Collections.Generic.List(Of Label)()
Ensuite, voici la fonction qui va récupérer tous les labels présent sur ta Form (à appeler dans la procédure Form_Load) :
Sub trouver_label() ' Pour trouver tous les labels d'une Form
For Each objet As Object In Me.Controls ' Parcours tous les controls de ta form
If objet.GetType.Name = "Label" Then ' Si c'est un Label
Browsers.Add(objet) ' on le rajoute dans la collection
End If
Next
End Sub
et enfin, voici la fonctions qui permet de modifier la propriété d'un label en fonction de son nom :
Sub Label_Text(ByVal Label_Name As String, ByVal Texte AsString) ' Propriété Text du Label
' Label_Name : Nom du Label ('toto' pour reprendre ton exemple)
' Texte : nom du texte que doit affiche le label
For i As Integer = 0 To Browsers.Count - 1 ' Parcours de toute la collection
If Browsers(i).Name = Label_Name Then ' Si un label correspond au nom passé en paramètre
Browsers(i).Text = Texte ' On modifie la propriété Text du Label avec le 2° paramètre
End If
Next
End Sub
Exemple : Pour modifier un Label voici comment appeler la fonction :
Label_Text("toto","Salut")
Ainsi, le Label qui s'appelle 'toto' va afficher 'Salut'.
Voici le Code Complet :
Public Class Form1
Dim Browsers As New System.Collections.Generic.List(Of Label)() ' Collection de labels
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
trouver_label() ' Répertorier tous les labels de la Form dans la collection
End Sub
Sub Label_Text(ByVal Label_Name As String, ByVal Text As String) ' Modifier la propriété Text du Label
For i As Integer = 0 To Browsers.Count - 1 ' Parcours toute la collection
If Browsers(i).Name = Label_Name Then ' Si le nom du label correspond au nom du 1° paramètre
Browsers(i).Text = Text ' On modifie la propriété Text du label avec le 2° paramètre
End If
Next
End Sub
Sub trouver_label() ' Pour trouver tous les labels d'une Form
For Each objet As Object In Me.Controls ' Parcours tous les controls de ta form
If objet.GetType.Name = "Label" Then ' Si c'est un Label
Browsers.Add(objet) ' on le rajoute dans la collection
End If
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Lors du clic sur Button1 on appelle la fonction Label_Text
Label_Text("toto", "Salut") ' Après cette fonction, le label 'toto' va afficher 'Salut'