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

C# Discussion :

Passer un Textbox en paramètre d'une méthode [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Programmeur amateur
    Inscrit en
    Mars 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur amateur
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 10
    Points : 14
    Points
    14
    Par défaut Passer un Textbox en paramètre d'une méthode
    Bonjour,

    Dans l'évènement "SelectionChanged" d'un texbox, je vérifie le dernier caractère tapé au clavier. S'il le faut, je le supprime, interdisant par là l'utilisation de certains caractères et je replace le curseur au bon endroit (sinon il revient automatiquement au début du texte). De ce côté là, pas de problème. Ce genre de textbox, je vais en avoir plusieurs qui devront tous avoir le même comportement.

    Donc j'ai deux solutions :
    - soit faire un copié-collé dans l'évènement "SelectionChanged" de chaque textbox,
    - soit je mets en place une méthode (static) que je pourrai appeler dans chacun des évènements SelectionChanged.

    Bien sûr, cette 2ème solution me plaît plus car, en cas de modification, tous les textbox concernés seront impactés.

    Cette méthode doit avoir accès au textbox utilisé pour pouvoir justement effacer un caractère et replacer le curseur au bon endroit. J'ai donc voulu le passer en paramètre de ladite méthode : et là, je bloque.

    J'ai bien vu des topics (je n'en ai trouvé que 2 en faite) qui abordent ce sujet mais la solution donnée ne convient pas. Ils proposent de mettre "Textbox maTB" comme paramètre mais le type Textbox n'est pas reconnu (je crois d'ailleurs que c'est du Winforms si je ne me trompe). Est-ce que quelqu'un sait comment faire ?

    Question subsidiaire : est-ce que cette méthode est "propre" ?

    Pour information : je développe l'appli en WPF.

    Merci d'avance pour vos réponses.

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Février 2015
    Messages : 66
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    Si tu utilisais plutôt le pattern MVVM et la logique de binding qui va avec, tu pourrais utiliser le fait que ta textbox se mette à jour à chaque nouvelle saisie (updateSourceTrigger=onpropertychanged)

    Grâce à cette propriété, tu pourrais récupérer dans ta vue modèle la chaine de caractère actuellement saisie et d'aire le traitement que tu souhaites dessus.

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 185
    Points : 167
    Points
    167
    Par défaut
    Bonjour Hyatus,
    Comme le dit zeratec, en WPF, en utilisant MVVM, tu peux facilement définir des fonctionnalité à un objet que tu utilises plusieurs fois.
    Après, si tu as fait du WPF à la méthode WinForm, là c'est différent. Néanmoins, du peux faire une seule méthode pour ton évènement "SelectionChanged" et tu branches chaque TextBox dessus. La signature (object sender, EventArg eventArg) te permet de récupérer ton TextBox : var txtbx = (TextBox)sender;

  4. #4
    Membre à l'essai
    Homme Profil pro
    Programmeur amateur
    Inscrit en
    Mars 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur amateur
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 10
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Je suis un programmeur du dimanche qui me "forme" à coup de recherches sur le Net pour des programmes exclusivement pour ma consommation personnelle. Je me suis bien sûr penché sur le binding car, effectivement, c'est une partie importante de C# mais je pense ne pas l'utiliser comme il faut... du moins en utilisant pas toutes ses fonctionnalités.
    Depuis le message de zeratec, j'ai mis en suspend mon programme pour approfondir mes connaissances sur le binding (et MVVM du coup) et j'ai l'impression d'avoir un nouveau monde qui s'ouvre à moi !
    ypelissier, tu as raison, je dois plus programmer façon WinForm car je me base plus sur les connaissances que j'avais sur d'autres langages lorsque j'étais plus jeune

    Dans un 1er temps, j'ai contourné mon problème car passer ma textbox en paramètre d'une méthode ne me semble pas très joli-joli. J'ai fait une méthode static acceptant le contenu de ma textbox et la position du curseur (par référence afin de pouvoir modifier sa valeur). Ma méthode retourne une chaîne de caractères (le contenu de ma textbox débarrassé des caractères interdits) et la position du curseur. Je peux ainsi l'utiliser dans tous les SelectionChanged de mes textbox concernés.

    Mais je vais changer ça en suivant les conseils de zeratec. Je m'en rapproche.

    Merci à vous deux.

    Je mets la discussion en résolu même si ce n'est pas encore tout à fait le cas.

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

Discussions similaires

  1. [Toutes versions] Passer un textbox en paramètre d'une procédure
    Par indox dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 02/05/2014, 19h28
  2. RMI - Passer un objet Remote en paramètre d'une méthode
    Par benji1801 dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 13/02/2011, 15h39
  3. Réponses: 5
    Dernier message: 13/07/2009, 14h42
  4. comment passer un ArrayList comme paramètre d'une méthode
    Par itmak dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 22/11/2008, 10h31
  5. Réponses: 1
    Dernier message: 30/01/2008, 19h41

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