Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2346 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  création dynamique de contrôle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

création dynamique de contrôle

n°388200
reactionna​ire
Posté le 09-05-2003 à 13:55:09  profilanswer
 

j'ai crée des controles dynamiques avec load controle. Problème, je n'arrive pas à accéder au valeur des propriétés de ce contrôle.  
Exemple, je crée dynamiquement un textbox avec le nom textbox1, je fais Me.textbox1.Text, et j'obtient une erreur à l'execution. J'ai pallié ce problème en parcourant tous les contrôles du formulaire et en testant chaque fois, le name de de contrôle, j'arrive effectivment à récupérer la valeur voulue, mais cela m'oblige à parcourir tous les controles.  
 
Merci de vos lumières ...

mood
Publicité
Posté le 09-05-2003 à 13:55:09  profilanswer
 

n°388216
drasche
Posté le 09-05-2003 à 14:00:23  profilanswer
 

toi tu es un petit veinard ;)  J'en ai fait ces deux derniers jours...  Tout dépend de ce à quoi tu veux arriver exactement, et quelle base tu as au départ sur ton écran.
 
Si tu parles de contrôles en array, et qu'un contrôle initial existe sur l'écran, il faut qu'il porte l'index zéro, et tu devras faire un truc du style  
 
Load TextBox1(1)
 
et référencer ton nouveau contrôle par  
 
TextBox1(1).Text = "bonjour"
 
Je crois que ton problème est là: tu dois spécifier un index.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°388231
drasche
Posté le 09-05-2003 à 14:07:08  profilanswer
 

Sinon, créer dynamiquement un contrôle tout seul dans un coin de l'écran exige une référence.  Dans ce cas, oublie le Load:
 

Code :
  1. Set objComCtl = Controls.Add("MSComctlLib.ListViewCtrl.2", "objComCtl" )


 
Cette ligne crée un ListView dont la référence est assignée à objComCtl.  Il faudra bien sûr l'initialiser, sachant que par exemple, le contrôle est invisible au départ.
 
C'est fort utile pour récupérer les events d'avoir une variable permanente, qui doit être déclarée:
 

Code :
  1. Private WithEvents objComCtl as ListView


 
L'identifiant Controls est une collection associée à toute Form.  Le premier paramètre est le type de contrôle, et le second est une clé pour l'identifier dans la collection.  Si tu ne veux pas avoir de référence via une variable, tu pourras toujours le retrouver avec:
 

Code :
  1. Controls("objComCtl" )


 
qui renverra la référence vers le contrôle.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°388296
reactionna​ire
Posté le 09-05-2003 à 14:45:03  profilanswer
 

merci bien drasche, ça marche, j'utilise la deuxième méthode.
 
Mais un petit détail m'échappe. Quand je fais ça :
MsgBox Controls("menu1" ), j'obtiens bien le text du control menu1
 
Le problème, c'est que j'ai crée menu1, menu2, menu3 ... et je voudrais accèder successivement à leur valeur dans une boucle.  
De type :
 
For i = 1 To nbmenu
  texte = "Me.menu" & i
  MsgBox Controls(texte)
Next
 
Mais j'obtiens alors une erreur 730 , erreur d'exécution 'Me.menu1' introuvable ??? Je comprends pas.
 
si tu peux m'aider ...

n°388865
drasche
Posté le 10-05-2003 à 00:28:09  profilanswer
 

vire le "me.", à première vue c'est ça qui salope tout ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1689821
KLMStylePr​oduction
Posté le 21-02-2008 à 06:21:00  profilanswer
 

J ai le mm probleme,  
 
Excel ne trouve pas l object...
 
comment faire?
 
PS j ai essayer d enlevr me et ca marche tjrs pas

n°2243933
gismo36
Posté le 25-11-2014 à 15:46:50  profilanswer
 

Comment faire pour les procédures de type ItemCheck?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  création dynamique de contrôle

 

Sujets relatifs
Création dynamique de composants et plus...[C]Taille de chaine de caractères dynamique...
[AVIS] création de site web sur voila.frcontrole de date
[PHP]Probleme de creation de cession/cookietableau dynamique
Creation d'un repertoire et CHMODCréation d'un bouton faisant apparaitre zone texte dans FLASH
[PHP] travail de colorisation/création d'image... [ - Job's Done - ] 
Plus de sujets relatifs à : création dynamique de contrôle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR