zone de texte numérique

Comment créer une zone de texte numérique en C# et VB.net ?

Partagez sur:

Dans ce tutoriel, nous allons voir comment créer une zone de texte numérique en C# et VB.NET.

Un contrôle TextBox permet d’afficher, ou d’accepter en entrée, une seule ligne de texte.

Il ne peut contenir que du texte non formaté dans sa propriété Text.

 

Créer une zone de texte numérique en C# et VB.net

Dans de nombreuses situations, vous devez entrer uniquement des valeurs numériques dans la zone de texte.

Pour créer une zone de texte numérique en C# et VB.net, nous allons voir quelques techniques utiles qui n’acceptent que les nombres dans la zone de texte.

 

Lire aussi: Comment installer .NET Core sur Ubuntu 18.04

 

Vous pouvez utiliser une expression régulière pour valider une zone de texte pour saisir uniquement un nombre.

System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "[ ^ 0-9]")

Dans ce cas, votre Textbox n’accepte que les chiffres.

La méthode suivante vous permet également de forcer votre utilisateur à saisir uniquement une valeur numérique.

if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
{
    e.Handled = true;
}

 

Si vous souhaitez autoriser les décimales, ajoutez ce qui suit au code ci-dessus.

if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
{
    e.Handled = true;
}

 

VB.Net

If (Not Char.IsControl(e.KeyChar) _
             AndAlso (Not Char.IsDigit(e.KeyChar) _
             AndAlso (e.KeyChar <> Microsoft.VisualBasic.ChrW(46)))) Then
    e.Handled = True
End If

 

Code source C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "  ^ [0-9]"))
            {
                textBox1.Text = "";
            }
        }
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
            {
                e.Handled = true;
            }
        }
    }
}

 

Code source VB.Net

Public Class Form1
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If (Not Char.IsControl(e.KeyChar) _
                     AndAlso (Not Char.IsDigit(e.KeyChar) _
                     AndAlso (e.KeyChar <> Microsoft.VisualBasic.ChrW(46)))) Then
            e.Handled = True
        End If
    End Sub
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If System.Text.RegularExpressions.Regex.IsMatch(TextBox1.Text, "[  ^ 0-9]") Then
            TextBox1.Text = ""
        End If
    End Sub
End Class

 

Conclusion

dans ce tutoriel, vous avez vu comment créer une zone de texte numérique en C# et VB.net

 


Partagez sur: