sebrs1
Messages postés81Date d'inscriptiondimanche 15 avril 2001StatutMembreDernière intervention20 novembre 2012
-
30 avril 2007 à 10:43
sebrs1
Messages postés81Date d'inscriptiondimanche 15 avril 2001StatutMembreDernière intervention20 novembre 2012
-
30 avril 2007 à 20:56
Salut tout le monde. je suis en stage informatique et je fait du dotnet
je créer des controles dynamiquement dans mon application et je voulais savoir si CT possible de les utiliser directement par leur nom. Apparemment on peut les utilser comme ça
Me.controls(integer)
mais ce que je voudrais c'est genre me.controls("mon_controle_1")
c'est possible un truc dans le style?
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 30 avril 2007 à 17:30
Alors, on peut penser que tu n'as pas le 2.0.
vérifies dans les paramètres de Windows (Ajout suppression de programmes), si tu as le 2.0, tu le trouveras dans la liste!
à+
PS: si tu ne l'as pas, sois tu te le procures, soit tu t'écris un observateur secondaire, qui reçoit un clé de type String, et qui énumère la collection de control jusqu'à ce qu'il trouve la bonne clé. Après quoi, il te renvoie la référence au control trouvé.
rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 avril 2007 à 13:21
Mon code est fait en VB2005, c'est à dire du VB .NET. Mais si tu dit VB.Net tu veux surrement dire VB.Net 2003.
Je ne l'ai pas sous la main pour tester, il se peut qu'il y ait quelques petites différences.
Ca bloque sur quelle ligne exactement ??? (éventuellement, met ton code s'il ne s'agit pas du mien que tu teste)
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
sebrs1
Messages postés81Date d'inscriptiondimanche 15 avril 2001StatutMembreDernière intervention20 novembre 2012 30 avril 2007 à 13:54
alors voila comment ma listebox est instanciée :
'1 listbox pour les employes
Dim lst
As
New ListBox()
lst.Size =
New Size(200, 95)
lst.Location =
New Point(184, 24)
lst.Name = "lst_" & nombrePlanning.ToString
et quand j'essaye de faire ça :
Dim
lst
As ListBox = TabPage1.Controls("lst_" & num)
ben sa met comme quoi le cast de "lst_" & num en Integer est non-valide, parce qu'a la base dans les parenthese, il attend un entier et non une chaine
PurBonheur
Messages postés66Date d'inscriptionsamedi 24 février 2007StatutMembreDernière intervention 7 octobre 20071 30 avril 2007 à 15:24
Ce que je comprend pas c'est pourquoi il essaye de caster en integer alors qu'il éxiste une surcharge qui utilise une chaine de litéral.
Le TabPage1 est bien un Controle TabControl ? Comment tu l'ajoute sur ta feuille (au moment du design ou tu l'instancie par le code) ?
ton bout de code était bref, mais malheureusement, il laisse planer tout un tas de doutes, avec par exemple, la 1ère instance de lst se retrouve-t-elle ajoutée dans la collection controls du TabPage1?.
d'où mes questions :
- es-tu sûr que num contient une valeur?
- es-tu sûr que la concaténation donne bien une clé valide (correspondant donc au name d'un control existant dans TabPage1.Controls)?
- es-tu sûr que ta ListBox est bien ajoutée dans la collection controls du TabPage (pas visuellement, mais belle et bien contenue dans un parent)? D'accord, c'est un peu la même question, mais raison de plus pour se la poser :)
Pour être plus généraliste, et corroborer ce que t'ont dit les autres membres, et pour que personne ne pense que tu hallucines, il semble en effet qu'on puisse accéder à un objet de type Control.ControlCollection (System.Windows.Forms) via son membre Item, qui tolère une valeur de type Int32 (dans les versions 2.0, 1.1 et 1.0 du .NET Framework, et dans les versions 2.0 et 1.0 du .NET Compact Framework) ou de type String (mais ce, uniquement dans la version 2.0 du .NET Framework).
Alors, s'il te plait, n'aies pas honte de ne pas avoir beaucoup de sous, et dis nous précisément quelle version tu utilises? :)
à+
rvblog<sup>n
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!</sup>
sebrs1
Messages postés81Date d'inscriptiondimanche 15 avril 2001StatutMembreDernière intervention20 novembre 2012 30 avril 2007 à 17:11
oui c bien un tabcontrol et il est ajouté en mode design.
entre 2003 et 2005 je sais pas. mais je sais qu'il m'indique qu'il y a que la possibilité av des integer.
PurBonheur
Messages postés66Date d'inscriptionsamedi 24 février 2007StatutMembreDernière intervention 7 octobre 20071 30 avril 2007 à 17:31
Pour savoir si tu a 2003 ou 2005, regarde dans le menu '?'->'A propos de visual studio'. La 2005 corespond à la version 8.0 et la version du framework est indiqué.
Si tu dis que tu n'a que la surcharge avec interger, c'est certainement .Net 1.0 ou 1.1.
regarde si tu a : TabPage1.controls.find(Key as String, Boolean) ca te renvois un tableau de controles, mais si tu n'a qu'un controle par nom, alors le tableau ne contiendras qu'un objet.
sebrs1
Messages postés81Date d'inscriptiondimanche 15 avril 2001StatutMembreDernière intervention20 novembre 2012 30 avril 2007 à 20:56
merci pour vos réponse, jpense que je ferai ma propre méthode pour chercher un composant a partir du nom. y'a pas d'autres solutions
rvblog t'as peut-etre zappé le tout debut de mon premier message mais j'ai dis que j'étais en stage, donc les sous , c'est pas moi qui les débourses, et donc jm'en fou un peu.