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
2 Comments