Création d'un tableau de contrôle utilisateur

[Résolu]
Signaler
Messages postés
32
Date d'inscription
vendredi 4 novembre 2005
Statut
Membre
Dernière intervention
8 juin 2009
-
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
-
Bonjour à tous,

Je voudrais lors de chargement de ma frame créer pour chaque lignes de ma base de données un contrôle utilisateur (ici un label, mais je voudrais le faire aussi avec un un TextBox) avec le nom que je retrouve dans la base de données. cela me pose 2 problèmes :

1)- comment créer un contrôle avec un nom récupérer en base de données?
2)- comment créer un tableau de controle (comme cela était si bien en VB)

Merci à tous, n'hésitez pas à me demander des précisions si je ne suis pas clair.

Mathieu.

7 réponses

Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Bonjour ,

1)- comment créer un contrôle avec un nom récupérer en base de données?
    J'ai pas vraiment compris la question ??? (Ajoute une variable de type string en public à ton control)
2)- comment créer un tableau de controle (comme cela était si bien en VB)
    Tu crée une collection (ou un dico)

Le dico :
Dim NomVariable As Dictionary(Of Type de la clef, Type à mettre dans le dico)
Exemple :
Dim toto As Dictionary(Of String, UserControlConfigSource)
L'avantage est que tu est sure du type contenu par ce type de collection (j'ai entendu dire que le dico étais par contre plus lent que la collection mais je n'es jamais fait de tests)

Mais un tableau de Control est faisable ????
Dim toto(0 To 12) As UserControlConfigSource

Pour ajouter ton contole à un TabPage
TabPageToto.Controls.Add(Util)

Pour fermer un controle :
UserControlConfigSource.Dispose

Voila avec tout sa tu devrais t'en sortir
Amicalement
Pensez "Réponse acceptée"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Heeeeeee tu parle d'un contrôle utilisateur (UserControl) ou d'un controle classique (textbox par esxemple) ?

Je ne crois pas que ce que tu veut faire soit possible en faite. L'idéale pour toi (à mon humble havie) serais un dico ou collection dans le/la quel/quelle tu range tes objets.

Dim Conteneur as new Dictionary(of String,Label)
Dim ObjLabel As New Label()
Conteneur.Add ("NomDuLabel",ObjLabel)

Pour retrouvé le label dans le dico :
Conteneur("NomDuLabel")

Si non fait une collection le fonctionnement est TRÈS proche de celui du dico (avec de petite subtilité en moins, le dico permet par exemple de récupérer la liste des clef dans un foreach)

Amicalement
Pensez "Réponse acceptée"
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
Salut Mathieu,

Dim TextBoxes(29) As TextBox
For i As Integer = 0 To 29
    TextBoxes(i) = New TextBox
    TextBoxes(i).Name = "TextBox" & i
Next i

Si tu veux ajouter l'un de tes TextBox sur un contrôle conteneur (autrement dit, l'afficher) :
TextBoxes(0).Left = 100
TextBoxes(0).Top = 100
TextBoxes(0).Width = 120
MyContener.Controls.Add(TextBoxes(0))

Tu peux évidement utiliser une list (List(Of TextBox)) ou un dictionary (Dictionary(Of Integer, TextBox)) ou tout autre liste à la place d'un simple tableau..
Messages postés
96
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2011
2
Bonjour, en apparté à ton problème je te fais une suggestion:
crée une serie de textbox indexés (idem avec labels...) liés à une scrollbarre verticale.

ensuite tu te positionne sur ton recordset avec absoluteposition=vscrollbarre + index
et tu boucle avec recordset.movenext pour remplir tes textbox

Ainsi tu evite les dépassements de taille dans ta frame si trop d'enregistrements.
Si ton recordcount est inférieur au nombre de textbox, tu rend la scrollbar invisible.
Messages postés
32
Date d'inscription
vendredi 4 novembre 2005
Statut
Membre
Dernière intervention
8 juin 2009

Pour la question 1) mon problème et de pourvoie instanciée un contrôle avec un nom variable exemple :
dim toto as string = "pouet"
dim [toto] as label

le but étant que mon contrôle est comme nom "pouet"

est-ce plus clair???
J'essaye ta proposition pour la 2)
je te fais un feed back bientot...

Merci...
Messages postés
32
Date d'inscription
vendredi 4 novembre 2005
Statut
Membre
Dernière intervention
8 juin 2009

Merci pour tout j'ai fait une collection et ça va bien...
Pour le reste je me suis démerder autrement...

Merci à tous pour tout...
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
Heu... c'est exactement ce que j'ai dis/fais dans mon précédent message... pourquoi n'est-il pas acceptable?