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

Windows Forms Discussion :

[c#] remettre à zéro une form


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 4
    Points
    4
    Par défaut [c#] remettre à zéro une form
    Salut !

    Je suis nouveau sur ce forum qui a l'air bien sympathique ma foi !
    J'ai une petite question toute bete, je voudrais pouvoir réinitialiser une form sans avoir à faire des dizaines de :

    control.text = "..."

    et en plus devoir changer ca quand les controls changent... Bref j'ai trouvé une petite boucle qui devrait faire ce que je veux :

    for (int i = 0; i<this.Controls.Count;++i)
    {
    this.Controls[i].ResetText();
    }

    malheureusement ca ne me remet pas la valeur par défaut, ca efface tout...
    J'ai définit les textes par défaut de mes control à partir du champ "Text" des propriété du control.

    Merci d'avance !

    P.S: je suis sur visual 2003 framework 1.1 si ca peut aider..

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    si tu definis toi meme les valeurs des text, comment veux-tu que ce soit remis à zero?
    il faudrait que ca soit stocker quelque part.
    si tu ne le fais pas toi meme, ce n'est pas magique

    seul toi sait ce quil faut remettre dans les champs, donc seul toi peut les réinitialiser

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    merci pour ta réponse rapide! effectivement je croyais que la valeur par défaut était stockée et qu'on pouvait la réafficher !

    Alors maintenant viens la 2eme question, ca doit etre un probleme assez standart, est ce qu'il existe une solution conseillé ? parceque vraiment mettre 50 control.text = "" ca me parait bien nul..

    Sinon faire une boucle dans le constructeur de la form qui stocke tous les text des control dans un Hastable, puis faire une boucle qui recopie tout quand on veut remettre a zero ?

    du genre :

    Hashtable stocke = new Hashtable();
    for (int i = 0; i<this.Controls.Count;++i)
    {
    stocke.add(i,this.Controls[i].Text());
    }


    quelqun voit mieux ?

  4. #4
    Membre émérite
    Avatar de lakitrid
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 535
    Points : 2 388
    Points
    2 388
    Par défaut
    Au lieu d'associer un indice et une valeur, associe la référence du control et la valeur comme ca tu n'as pas à parcourir en paralléle la collection de contrôle et la hashtable.

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    excellent !
    merci ca marche nickel

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    A mon avis, le plus simple est de détruire la form et d'en créer une nouvelle à la place.
    Elle est initialisée toute seule.

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    oui mais si il s'agit de ma form principale this.close() ferme l'application... si tu vois comment faire effectivement ca serait plus simple je pense !

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    C'est vrai, avec la form principale, ce n'est pas possible.

    Je ne vois pas de solution sans coder l'affectation de toutes les propriétés comme c'est fait dans InitializeComponents() pour la création des contrôles.

  9. #9
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    bah justement faire une boucle pour enregistrer dans le constructeur puis une boucle pour charger, ca évite d'avoir une liste de control a maintenir, sinon a chaque modif d'un control tu dois changer le code de la remise a zero...

    mais c'est quand meme bizarre cette affaire, si il est possible dans le programme de fermer puis d'ouvrir une form en réaffichant les valeurs par défaut, c'est qu'elles doivent etre stockées quelqueparts... et dans ce cas ca devrait pas etre compliqué de les ressortir quand on veut !

    enfin je dis ca mais en meme temps j'y connais rien, si quelqun à la réponse a ce mystere..

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Citation Envoyé par erazorhead
    ... si il est possible dans le programme de fermer puis d'ouvrir une form en réaffichant les valeurs par défaut, c'est qu'elles doivent etre stockées quelqueparts... et dans ce cas ca devrait pas etre compliqué de les ressortir quand on veut !

    enfin je dis ca mais en meme temps j'y connais rien, si quelqun à la réponse a ce mystere..
    Ce n'est pas un mystère, chaque form possède une méthode InitializeComponent() qui est générée par le designer.
    Cette méthode qu'on trouve dans le fichier MaForm.Designer.cs (pour la classe nommée MaForm) contient toutes les constantes entrées dans le designer.

  11. #11
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    merci pour cette petite précision, j'ai essayé de trouver le Designer.cs, mais je ne l'ai pas trouvé... ma form s'appelle Cgui, donc je cherche un fichier Cgui.Designer.cs ?
    ou est t'il censé se trouver ?

    Enfin la vrai question c'était de savoir pourquoi est t'il si "compliqué" de remettre à zero un control alors que la valeur par défaut est bien stocké ?

    Mais bon c'est plus de la culture général, la méthode de la boucle marche au poil

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Citation Envoyé par erazorhead
    merci pour cette petite précision, j'ai essayé de trouver le Designer.cs, mais je ne l'ai pas trouvé... ma form s'appelle Cgui, donc je cherche un fichier Cgui.Designer.cs ?
    ou est t'il censé se trouver ?
    Ouvres l'explorateur de solutions (Menu Affichage/Explorateur de solution) et clique sur Cgui.cs dans ta solution.

  13. #13
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    salut,
    je ne l'avais jamais essayé , mais moi aussi je pensais que la méthode ResetText des textboxs faisait revenir le .text que l'on avait tapé en mode design.

    si ResetText() met le textbox à "" je ne vois pas du tout son utilité vu qu'il existe une méthode .Clear() qui fait déjà ça !

    es tu sur que resettext ne fait pas déjà ce que tu veux ?

    sinon tu peux te faire un usercontrol qui dérive d'un textbox avec une propriété de valeur par défaut.

  14. #14
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    hum, je vois pas de méthode .clear() pour les textbox ni les boutons.. il y en a une pour les Items d'une ListBox par exemple mais c'est pas tout a fait pareil puisque ca supprime l'élément.

    En tout ca ResetText() met tout les text de tes controles à "", ca c'est sur. En tout cas c'est ce que ca fait sur ma machine

    mais je suis d'accord ca me parait assez fou... y a forcément une raison, c'est des gens tres intelligent qui ont concu le language à priori...

    pour le usercontrol je m'en suis jamais servi mais ca me parait assez séduisant comme idée ! avec un champ valeur par défaut et une méthode qui redéfinit ResetText c'est ca ?
    Enfin ca me parait quand meme louche, j'ai l'impression de corriger le language C# en faisant ca, a mon avis y a un truc qui cloche..

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

Discussions similaires

  1. Remettre en 1er une form dans un splitter
    Par Pelote2012 dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/04/2013, 10h48
  2. Remettre à zéro les données d'une variable tableau
    Par Alfred23 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/09/2011, 20h40
  3. [VB6] [Excel] Feuille dans une form, sans excel installé
    Par ro2v dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 05/05/2010, 13h45
  4. remettre à zéro une animation
    Par jufo_ dans le forum Powerpoint
    Réponses: 2
    Dernier message: 21/08/2009, 21h46
  5. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/11/2002, 04h51

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