Controle dynamique [Résolu]

Messages postés
208
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
- - Dernière réponse : cs_JLuc01
Messages postés
208
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
- 26 avril 2012 à 00:17
Bonsoir tout le monde,

Je cree des controles dynamiquement dans une Sub: le bouton 'btnTest', le TextBox 'txtTest'... (declare dans cette Sub), btnTest utilise avec un AddHandler.

Quand je veux utiliser le code ci-dessous, cela ne marche pas.
Le texte "Panel1.txtTest" est souligne avec l'erreur suivante: "txtTest is not a member of System.Windows.Forms.Panel".

Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim fbdPicturesFolder As New FolderBrowserDialog
fbdFolder.RootFolder = Environment.SpecialFolder.Desktop
If fbdFolder.ShowDialog() = DialogResult.OK Then
   Panel1.txtTest.text = fbdFolder.SelectedPath
End If
End Sub


Je crois comprendre le probleme (txtTest n'est pas encore cree, donc ne peut pas etre un membre de Panel1), mais je ne vois vraiment pas comment contourner ce probleme, tout en gardant mes controles dynamiques.
J'ai essaye de declarer txtTest en dehors de sa Sub, mais sans succes.

Existe-t-il un moyen de faire en gardant ces controles dynamiques ou bien dois-je attaquer le probleme differement?
Peut-etre que je fais trop complique???

A+
JLuc01
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
14456
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2019
130
3
Merci
Bonjour,

Il faut que tu utilises une variable/attribut.

Dim MonBouton As Button

Dans une Sub/Function :
MonBouton=New Button

Et pour l'utiliser :
MonBouton.*

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
37
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
20 mai 2016
1
0
Merci
Salut !

A voir comme ça, ceci pose problème : [i] Panel1.txtTest.text = fbdFolder.SelectedPath
/i

Ton TextBox fait partie de la collection de contrôles de Panel1 !!!

Essaye plutôt ceci:
   Panel1.controls("txtTest").text = fbdFolder.SelectedPath

(Même si pas encore déclaré au moment de la compilation, ça passe. ça plante uniquement si il n'est créé au moment de l'appel.)

ou directement

   txtTest.text = fbdFolder.SelectedPath

(Ne passe pas si n'est pas déclaré)

JD.
Commenter la réponse de cs_gide_x
Messages postés
208
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
0
Merci
Bonsoir,

J'allais commencer mon message par: "Je ne crois pas que vous ayez bien compris mon probleme."
Et continuer par des explications compliquees.

En fait, en relisant plusieurs fois la breve reponse de NHenry, j'ai finalement tout compris.
Et merci bien, ca marche.

Merci a tous les deux de s'etre penche sur ce probleme.

Pour info, je suis content d'avoir compris ce point interessant sur les controles dynamiques.
MAIS, finalement, je n'ai pas besoin d'utiliser des controles dynamiques, car je peux tout creer en design. En fait, j'utilise pas mal les controles dynamiques en ce moment et j'ai tendance a les utiliser a toutes les sauces.

Merci encore,
JLuc01
Commenter la réponse de cs_JLuc01