IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Remplis un champ créé dynamiquement


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 233
    Points : 72
    Points
    72
    Par défaut Remplis un champ créé dynamiquement
    Bonjour à tous,
    Dans un WindowsForm, je créé plusieurs objets dynamiquement en utilisant un code similaire au suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ChpImmeuble = New TextBox
            With ChpImmeuble
                .Top = LblImmeuble.Top
                .Left = LblImmeuble.Left + LblImmeuble.Width + HInterval
                .Width = 50
                .Text =  "0"
            End With
            Me.Controls.Add(ChpImmeuble)
    Lorsque l'utilisateur le souhaite, il peut afficher les données enregistrées précédemment dans un fichier XML.
    pour ce faire, je pensais utiliser le code ci*dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim doc As New XmlDocument()
            doc.Load(Form_Principale.Nomfichier)
     
            Dim XMLLMNPImmeuble As XmlNodeList = doc.GetElementsByTagName("LMNPImmeuble")
              ChpImmeuble.Text = (XMLLMNPImmeuble(0).InnerXml)
    Malheureusement cette dernière ligne produit une erreur "Le membre public 'Text' du type 'String' est introuvable."

    Ce n'est pas la première fois que j'utilise ce genre de code, mais je n'ai jamais été confronté à cette erreur.
    A tout hasard, j'ai essayé le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox("Valeur lue : " & (XMLLMNPImmeuble(0).InnerXml))
    Tout fonctionne très bien, la valeur lue est bien celle contenue dans le fichier XML

    j'ai également essayé le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChpImmeuble.Text = "123"
    Celui-ci produit la même erreur que précédemment.

    Le problème me parait venir de mon objet ChpImmeuble mais je ne comprends pas ce qui ne va pas.

    Quelqu'un pourrait m'aider ?
    Je vous remercie par avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    bonjour,

    Plusieurs choses :

    1- Lorsque tu crees un objet depuis la classe Textbox il serait judicieux de préfixer le nom de ton objet par Txb et non chp (it doesn't make sense......)....
    2- Je suppose que tes 2 premiers snippets de code source ne sont pas contigu donc il faudrait nous preciser la portée de ton objet ChpImmeuble dans le 2eme snippet........ comment recuperes tu l instance (parcours des controles de ton main form ou bien depuis une list (Of )????
    3- Si tu veux recuperer le parametrage de tes controles alors je t invite a utiliser la serialization plutot que de creer un fichier xml a la volée avec xmldoc !

    ++

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 233
    Points : 72
    Points
    72
    Par défaut
    Bonjour Wallace et merci de te pencher sur ma question.
    Je prends bonne note de ta suggestion quand au nom des objets créés dynamiquement et tâcherai de mettre ta recommandation en application dans mes prochains codes.

    Le premier code qui créé mes objets est lancer au chargement de ma form (dans le Load).
    Le second code qui vise à afficher une info dans la textbox est déclenché au clic d'un bouton (Button1.Click).

    Je vais me pencher sur la sérialization pour parfaire mon code, mais je ne pense pas que dans l'immédiat cela me permette de résoudre mon problème principal

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Si tu postais le code complet on pourrait y voir plus clair car en l'état c'est difficile de savoir comment sont conservées tes instances ,..etc.......

    La sérialisation au contraire t'aidera à coder objet donc à terme tu y verrais plus clair, il faut donc prendre le taureau par les cornes.

    A première vue ton projet concerne l'immobilier donc as-tu créer les classes adéquates ???

    ++

  5. #5
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 233
    Points : 72
    Points
    72
    Par défaut
    Désolé, je ne voulais pas faire de la rétention d'information. Je ne poste pas mon code complet dans un soucis de clarté et pour éviter de surcharger les posts avec des informations qui ne me paraissent pas utiles.

    En "relisant" mon code pour prendre en compte les suggestions de Wallace, j'ai trouvé d'où venait mon erreur, tout simplement dans la définition erronée de mes objets textbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public ChpImmeuble = ""
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public TxtBx_Immeuble As TextBox
    J'ai voulu allé trop vite et ça m'a joué des tours.

    En tout cas, merci à Wallace de s'être penché sur mon problème et de m'avoir fait part de ses suggestions d'améliorations et de ses précieux tuyaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH 8] Texte html dans champ texte dynamique
    Par bractar dans le forum Flash
    Réponses: 9
    Dernier message: 21/01/2007, 10h08
  2. ADOTable : ajouter un champ en dynamique aux champs existant
    Par Sunchaser dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/03/2006, 17h06
  3. Réponses: 5
    Dernier message: 06/03/2006, 17h38
  4. Champs texte dynamique
    Par dafalri dans le forum Général JavaScript
    Réponses: 40
    Dernier message: 28/11/2005, 16h48
  5. écrire dans un champs généré dynamiquement
    Par scoder dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/12/2004, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo