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 :

Initialisation d'un textbox [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut Initialisation d'un textbox
    bonjour,

    Je découvre un comportement un peu inattendu.
    Depuis un form1, j'ouvre un form2 en modal.
    Par le code, je renseigne la valeur d'un textbox contenu dans form2 (=valeur1)
    Puis je referme form2
    Normalement, je m'attends à ce que la valeur de textbox soit perdue à ce moment là.
    Pourtant si je rouvre form2 depuis form1. Cette fois, le code n'assigne aucune valeur à textbox.
    Pourtant je constate que textbox.text = valeur1

    Cette mémorisation est-elle normale ? Et quel est le premier "événement" qui met fin à cette mémorisation (car à l'évidence, il y en a un, a minima la fermeture de l'application) ?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    le code ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par noftal Voir le message
    Cette mémorisation est-elle normale ?
    Bah si tu ouvres à nouveau la même instance de Form2, oui, c'est normal. Il n'y a pas de raison que l'instance ait perdu ses données entre temps...

    Citation Envoyé par noftal Voir le message
    Et quel est le premier "événement" qui met fin à cette mémorisation (car à l'évidence, il y en a un, a minima la fermeture de l'application) ?
    Je ne comprends pas très bien ta question... Tant que tu continues d'utiliser la même instance de Form2, elle conservera ses données.

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Bonjour,

    je ne sais pas trop quoi vous montrer comme code.

    Je peux juste vous dire que les codes pour ouvrir et fermer form2 sont du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Form2.ShowDialog()
    ...
    Form2.Close()
    Donc, si après cela, je refais Form2.ShowDialog(), il s'agit bien d'une nouvelle instance, non ?

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par noftal Voir le message
    Donc, si après cela, je refais Form2.ShowDialog(), il s'agit bien d'une nouvelle instance, non ?
    Non, c'est la même ; c'est "l'instance par défaut" de Form2 (concept qui est d'ailleurs totalement aberrant pour un langage orienté objet, mais qui a été ajouté à VB2005 pour faciliter la migration depuis VB6)

    Si tu veux une nouvelle instance à chaque fois, il faut la créer explicitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim f As New Form2()
    f.ShowDialog()

  6. #6
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Merci, j'ignorais cette subtilité ;je me coucherai moins bête ce soir !

    Du coup, j'ai 2 solutions:
    1°/ soit j'efface le contenu de mon textbox avant de fermer form2
    2°/ soit j'ajoute un dim pour créer une nouvelle instance avant de l'ouvrir.

    Dans le cas 2°/ cela me fait 2 lignes de codes à rajouter (car j'ouvre form2 depuis 2 endroits différents)
    Dans le cas 1°/ cela me fait 1 ligne de code à rajouter (dans la procédure visant à fermer le formulaire)

    Pour autant, ne vaut-il pas mieux privilégier la solution 2°, ou bien est-ce indifférent ?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Perso je trouve la solution 2 plus propre

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

Discussions similaires

  1. Initialisation de textbox dans formulaire
    Par naty76 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/02/2009, 17h21
  2. Initialisation plusieurs textbox
    Par Selune6666 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 22/01/2008, 09h57
  3. Réponses: 4
    Dernier message: 15/11/2007, 10h22
  4. initialisation textbox dans userform
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/08/2007, 09h24
  5. Initialisation d'un TextBox
    Par leyee dans le forum ASP.NET
    Réponses: 4
    Dernier message: 05/07/2007, 14h40

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