Bonjour,

J'ai besoin de faire un TextBox qui n'accepte que des chiffres donc après recherche, j'ai essayé l'utilisation d'expression régulière qui m'amène au même problème suivant :

Ma textbox refuse les lettres et tout autres caractères mais les caractères qui se trouvent avec les chiffres au-dessus du clavier sont quand même accepter...

Mon regex est le suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public bool Verifier(string chaine)
        {
            System.Text.RegularExpressions.Regex myRegex = new Regex("[1-9\b]");
            return myRegex.IsMatch(chaine);
        }
Je l'utilise comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
        private void tbxTest_KeyUp(object sender, KeyEventArgs e)
        {
 
            if (regex.Verifier(e.KeyCode.ToString()) == false)
            {
                tbxTest.Text ="";
                MessageBox.Show("Ce champ ne doit contenir que des chiffres.", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
            }
        }
J'ai reussi a faire une texte box numérique sans regex, comme çà:
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
22
23
24
25
26
27
28
29
30
31
32
        private bool pasNombreEntrer = false;
        private void tbxTest_KeyDown(object sender, KeyEventArgs e)
        {
            pasNombreEntrer = false;
 
            // Déterminer si la frappe est un numéro du clavier numérique .
            if ((e.KeyCode < Keys.NumPad1 || e.KeyCode > Keys.NumPad9))
            {
                // Determine si le frappe est un backspace.
                if (e.KeyCode != Keys.Back)
                {
                    // Déterminer si la frappe est un numéro à partir du haut du clavier .
                    if (((e.KeyCode > Keys.D1 || e.KeyCode < Keys.D9) && (Control.ModifierKeys != Keys.Shift) 
                        && !(Control.IsKeyLocked(Keys.CapsLock))|| (e.KeyCode < Keys.D1 || e.KeyCode > Keys.D9))
                        //On ne peut pas utiliser Shift si caps lock est activé
                        || ((Control.ModifierKeys == Keys.Shift) && (Control.IsKeyLocked(Keys.CapsLock))))
                    {
                        // Une touche non numérique a été enclecher
                            pasNombreEntrer = true;
                    }
                }
            }
        private void tbxTest_KeyPress(object sender, KeyPressEventArgs e)
        {
 
            if (pasNombreEntrer == true)
            {
                //Le caractère est non numérique donc il n'est pas validé
                e.Handled = true;
                MessageBox.Show("Ce champ ne doit contenir que des chiffres.", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Mais moi j'aimerais réussir a faire fonctionner le regex.

Je vous remercie en avance pour l'aide qu vous m'apporterez.