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 :

Probleme de textbox


Sujet :

Windows Forms

  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Par défaut Probleme de textbox
    Bonjour,

    Je suis en train de debugger une application windows ce et j'ai un curieux probleme dans mes winforms la proprietes maxlength n'est jamais prise en compte. J'ai verifie le code et en dehors de la verification du type d'elements inseres et une verification du nombre de caracteres tappe, je ne vois pas ce qui pourrait bloquer l'utilisation de la propriete maxlength.

    Une personne aurait elle deja eu le meme probleme ?

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Euh ... c'est curieux en effet. Tu positionnes la valeur de cette propriété à quel moment ? a design-time comme a run-time, ça marche très bien.
    Attention : cette propriété ne tronque pas une chaine déjà saisie.

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Euh ... c'est curieux en effet. Tu positionnes la valeur de cette propriété à quel moment ? a design-time comme a run-time, ça marche très bien.
    Attention : cette propriété ne tronque pas une chaine déjà saisie.
    Design-time, run-time... desole je ne comprends pas trop ta question.
    Normalement, j'utilise la proprietes maxlength de ma textbox et jusque la c'est toujours passe (j'ai l'habitude de travailler sous vs2005 mais en ce moment je suis sur la version 2003).
    Meme en essayant de modifier la valeur dans le code je n'ai aucun changement.
    J'ai affiche la valeur de la propiete dans ma textbox et sa valeur est bien tel que je l'ai voulu mais malheureusement lors de l'insertion, je peux rentrer autant de caracteres que je le souhaite.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Je te demandais si tu positionnais la valeur de la propriété at design-time (donc dans la property grid de Vs) ou at run-time (par code, à l'exécution).

    Dans tous les cas, c'est sensé marcher de toute manière.

    Tu n'as pas un hook clavier, une surcharge des procédures Paint de tes contrôles ou d'autres choses du même style ?

    Tu es absolument certain que les contrôles pour lesquels tu positionnes la propriété sont bien ceux dans lesquels tu saisis ? (pour t'en assurer, affiche sur le LostFocus une messagebox avec la saisie et la valeur de MaxLength : ce sera le meilleur lever de doute).

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Je te demandais si tu positionnais la valeur de la propriété at design-time (donc dans la property grid de Vs) ou at run-time (par code, à l'exécution).

    Dans tous les cas, c'est sensé marcher de toute manière.

    Tu n'as pas un hook clavier, une surcharge des procédures Paint de tes contrôles ou d'autres choses du même style ?

    Tu es absolument certain que les contrôles pour lesquels tu positionnes la propriété sont bien ceux dans lesquels tu saisis ? (pour t'en assurer, affiche sur le LostFocus une messagebox avec la saisie et la valeur de MaxLength : ce sera le meilleur lever de doute).


    private void textFaxContact_LostFocus(object sender, System.EventArgs e)
    {
    MessageBox.Show(textFaxContact.MaxLength.ToString());
    }

    De cette maniere ?

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    A une nuance près; plutôt comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    private void textFaxContact_LostFocus(object sender, System.EventArgs e)
    {
    MessageBox.Show(String.Format("Content {0} MaxLength {1} " , textFaxContact.Text, textFaxContact.MaxLength));
    }
    Ainsi, tu es sur que tu saisis bien dans la TextBox en question

  7. #7
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Par défaut
    La gestion du focus ne me renvoie pas de messagebox lors de la perte de celui-ci par contre en verifiant le code j'ai remarque qu'en fait c'est dans cette partie (la gestion du fait que seul les caracteres numerique seront affiches) qu'il y a un probleme.
    Ne l'ayant jamais fait auparavant est ce bien ainsi que l'on gere l'affichage unique des caracteres numerique car si je masque ces lignes de codes la valeur de maxlength fonctionne tres bien ?
    L'utilisation de isControl ne sert a rien je me trompe ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    private void textFaxContact_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    	char sCaractere = e.KeyChar;
     
    	if (Char.IsControl(sCaractere))
    		return;
     
    	e.Handled = true;
     
    	// si le caractère saisi n'est pas un chiffre, on sort
    	if (!Char.IsDigit(sCaractere))
    		return;
     
    	// si le 1er caractère saisi n'est pas un 0, on sort
    	if (textFaxContact.Text.Length == 0 && sCaractere.ToString() != "0")
    		return;
     
    	textFaxContact.Text += sCaractere;
    	textFaxContact.Select(textFaxContact.Text.Length, 0);
    }

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Ben, oui : le MaxLength bloque la saisie mais ne t'empêche pas de mettre ce que tu veux dans la zone. C'est un peu ce que je t'ai demandé plus haut.

    et oui, le IsControl ici ne sert à rien (tu as le !IsDigit qui de toute maniére fait tout le boulot) mais ce n'est pas lui qui pose problème : c'est le fait que tu remplisses la zone de texte "à la mimine".

  9. #9
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Ben, oui : le MaxLength bloque la saisie mais ne t'empêche pas de mettre ce que tu veux dans la zone. C'est un peu ce que je t'ai demandé plus haut.

    et oui, le IsControl ici ne sert à rien (tu as le !IsDigit qui de toute maniére fait tout le boulot) mais ce n'est pas lui qui pose problème : c'est le fait que tu remplisses la zone de texte "à la mimine".
    Ok mais dans tous les cas je dois obligatoirement n'afficher que des chiffres et leur nombre est limite. Alors comment dois je faire docteur ?

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par redpopo Voir le message
    Ok mais dans tous les cas je dois obligatoirement n'afficher que des chiffres et leur nombre est limite. Alors comment dois je faire docteur ?

    Ben, dans ton handler d'event KeyPress tu ajoute la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(textFaxContact.Text.Length >= textFaxContact.MaxLength)
    {
        return;
    }
    Avant le e.Handled = true, bien entendu.

  11. #11
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Par défaut
    Je l'ai deja essaye et malheureusement ca n'est pas pris en compte

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Si tu le mets juste après le isControl et juste avant le e.Handled = true, ça marche parfaitement. (je viens de tester).

    Finalement, le IsControl a son utilité dans ce cas.

  13. #13
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Si tu le mets juste après le isControl et juste avant le e.Handled = true, ça marche parfaitement. (je viens de tester).

    Finalement, le IsControl a son utilité dans ce cas.
    Ah bon ?
    Je viens de tester moi aussi en englobant tout le champ directement et ca marche de meme sans avoir besoin du isControl.

    Merci beaucoup de ton aide.

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

Discussions similaires

  1. Probleme avec textbox
    Par jacko842 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/12/2007, 19h22
  2. [débutant] probleme taille TextBox
    Par Knightrider76 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 06/07/2007, 18h03
  3. probleme de textbox
    Par lesafir dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/07/2007, 11h03
  4. probleme ID textbox tableau ASP
    Par onizuka159 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/06/2007, 14h49
  5. [C#] Probleme avec TextBox dans un DataGrid
    Par Oberown dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/12/2004, 16h05

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