Verifier le type du texte saisie dans un textbox

cs_layate Messages postés 38 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 26 mai 2006 - 18 avril 2005 à 16:23
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 9 mars 2006 à 22:02
Bonjour,
Je ne trouve pas comment faire pour verifier si la chaine de caractere saisie dans une textbox est de type numerique ou pas.
Sous VB je faisais Isnumeric et s'etait bon, mais là je ne voit pas.
Si quelqu'un peut m'aider.

14 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
18 avril 2005 à 16:47
Char.IsNumber(char)

Mx
0
cs_layate Messages postés 38 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 26 mai 2006
18 avril 2005 à 16:56
ça verifie si un caractere precis est numerique.
Mais moi jve verifier toute la textbox.
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
18 avril 2005 à 16:59
Bah tu t'inscris a l'evenement KeyPress de ta textbox, et tu vérifies le caractere tapé...



protected override void OnKeyPress(KeyPressEventArgs e)

{

if (char.IsNumber(e.KeyChar)) e.Handled = false;

else if (char.IsControl(e.KeyChar)) e.Handled = false;

else e.Handled = true;

}

Mx
0
shogolat Messages postés 13 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 19 avril 2005
19 avril 2005 à 16:48
bonjour, j'aimerai savoir ce que represente le e.Handled = false; car j'ai déjà utilisé des keypress sans et ca fonctionne...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
19 avril 2005 à 16:58
Ca veut justement dire que tu t'occupes pas de cet evenement KeyPress,
contrairement a True, qui voudrait dire que tu "prends la main" sur
l'evenement, pour y effectuer ton traitement.

Mx
0
kooljy Messages postés 25 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 12 mai 2006
8 mars 2006 à 10:36
et pour avoir le 3e caractère obligatoirement ':' ?? Je n'ais pas réussi à le rentré en dur.

et je n'ai pas le framework 2 pour avoir le maskedtextbox.

merci
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
8 mars 2006 à 10:46
Salut,
Je pense que dans ton cas il faut mieux s'inscrite a l'evenement Validating que ton TextBox

Et dans la méthode associée a l'evenement, tu mets :


<HR>


private void textBox1_Validating(
object sender,
CancelEventArgs e)
{

if (
this.textBox1.Text.Length >= 3)
{

if (
this.textBox1.Text[2] ==
':')

MessageBox.Show(
"ok");

else
{

MessageBox.Show(
"pas bon");
e.Cancel =
true;
}
}


<HR>



Mx
MVP C#
0
kooljy Messages postés 25 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 12 mai 2006
8 mars 2006 à 10:59
this.txtde[2] = ':'; ne fonctionne pas
0
kooljy Messages postés 25 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 12 mai 2006
8 mars 2006 à 11:02
merci.
désolé j'avais pas vu ta réponse
0
kooljy Messages postés 25 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 12 mai 2006
8 mars 2006 à 11:07
en fait je voudrais le rentrer en dur. avant qu'il ne saisisse quelque chose.

ex: __:__ un masque d'horaire..
j'ai essayé ca dans InitializeComponent : this.txtde[2] = ':';
mais il n'en veut pas.

merci
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
8 mars 2006 à 11:15
Dans ton cas, this doit faire reference a ta Form, pas a ton TextBox
Mais de toutes facons, ca n'empechera pas l'utilisateur de le modifier



Mx
MVP C#
0
kooljy Messages postés 25 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 12 mai 2006
8 mars 2006 à 11:40
ma textbox c'est txtde !

On peut pas la fixer en dur alors?
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
8 mars 2006 à 11:49
Non tu ne peux pas dans ce cas la.
La propriété Text[i] de ton TextBox est en lecture seule



Mx
MVP C#
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
9 mars 2006 à 22:02
Salut,

Le type string est immuable, chaque opération donne une nouvelle chaine, et on ne peut pas modifier directement un caractère.

Pour faire ton changement tu peux passer par un StringBuilder :
StringBuilder sb = new StringBuilder(this.txtde.Text);
sb[2]=':';
this.txtde.Text = sb.ToString();
sb = null;

/*
coq
MVP Visual C#
*/
0
Rejoignez-nous