Objet créer dynamiquement

thobass Messages postés 2 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 23 septembre 2005 - 23 sept. 2005 à 15:05
onemonster Messages postés 18 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 6 juillet 2006 - 29 sept. 2005 à 13:03
Bonjour,
Depuis hier je recherche désesperement une solution à mon pb, sur ce forum et ailleurs... tout les exemple se ressemble mais je n'y arrive pas.

Voila mon pb:
Une feuille qui doit générer dynamiquement des Label et des combobox autant que nécessaire (le nombre étant variable).

J'ai éssayé cela :

set monlabel = Me.Controls.Add("VB.Label") mais ca me dit :"Une valeur de type 'String' ne peut pas être convertie en 'System.Windows.Forms.Control'.(sur VB.Label)
(solution qui me plait)
monlabel.visible=true

et

load monlabel(i)
monlabel(i).left = monlabel(i-1).Left+monlabel(I-1).width+10
monlabel(i).top = monlabel(i-1).top
monlabel(i).visible=true
et la ca me dit : Erreur 10 La classe 'System.Windows.Forms.Control' ne peut pas être indexée, car elle n'a pas de propriété par défaut

(solution qui me plait pas)

Dans les 2 cas la seul déclaration que j'ai est Dim WithEvents monlabel as Label.
J'ai aussi essayé sans rien déclarer, ou en déclarant autrement, mais j'ai toujours la meme chose.

pour info j'utilise la version Beta 2 de VB 2005 Express Edition et je suis pret a passer à autre chose que cette version si besoin est, mais comme on va acheté Visual Studio 2005 (en tout cas VB 2005 c'est sur) j'aime autant commencé a programmer dessus des maintenant que de repasser plus tard derriere !

Merci de vos réponses,
S'il y en a, lol

Thomas

4 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
23 sept. 2005 à 15:17
Salut,

Essaie ça :

Dim MonLabel as Label
monlabel = new label
'là tu règle ses propriétés de nom, positionnement et de taille
monlabel.top = ...
etc
me.controls.add(monlabel)

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
thobass Messages postés 2 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 23 septembre 2005
23 sept. 2005 à 15:30
Mais t'es trop fort !!!!! en plus c'est logique ! pourquoi j'y ai pas pensé avant, c'est comme ca qu'on reconnait les boss !

Encor merci,
Thomas
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
24 sept. 2005 à 09:03
Bonjour,

Voici une autre méthode.



Private WithEvents lblObj As Label



Private Sub lblObj_Click()

MsgBox "Ceci est un Label ajouté de façon dynamique."

End Sub

Private Sub Form_Load()

Set lblObj = Controls.Add("VB.Label", "lblObj")

With lblObj

.Visible = True

.Width = 2000

.Top = 1000

.Left = 1000

.Caption = "Bonjour"

.BackColor = vbRed

.BorderStyle = 1

End With

End Sub



jpleroisse



Si une réponse vous convient, cliquez Réponse Acceptée.
0
onemonster Messages postés 18 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 6 juillet 2006
29 sept. 2005 à 13:03
:;mm
0
Rejoignez-nous