见代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class FormFYSD : Form { public FormFYSD() { InitializeComponent(); } private void textBox3_KeyPress(object sender, KeyPressEventArgs e) { bool result = false; //判断当前textBox是否为空 if (!string.IsNullOrEmpty(textBox3.Text.Trim())) { //Regex rex = new Regex(@"^[0-9]*$"); Regex rexFull = new Regex(@"^[0-9]+(.[0-9]{0,1})?$"); //判断输入是否是退格键 if (e.KeyChar == ‘\b‘) { result = false; } else { //判断是否匹配正则表达式 if (rexFull.IsMatch(textBox3.Text.Trim()) || rexFull.IsMatch(textBox3.Text.Trim() + e.KeyChar.ToString())) { //判断字符串中小数点的位数 if (Regex.Matches(textBox3.Text.Trim() + e.KeyChar.ToString(), "\\.").Count == 2) { result = true; } else { //判断输入字符是否是数字或者小数点 if (!(char.IsNumber(e.KeyChar) || e.KeyChar == (char)(‘.‘))) { result = true; } else { result = false; } } } else { result = true; } } } else { if (e.KeyChar < ‘0‘ || e.KeyChar > ‘9‘)//这是不允许输入0-9数字 { result = true; } else { result = false; } } e.Handled = result; } } }
这里需要注意添加一个引用:using System.Text.RegularExpressions;否则Regex无法识别。
本文转载自:https://jingyan.baidu.com/article/d3b74d640ff6cf1f77e6098f.html
【转】Winform中textBox通过正则表达式限制只能输入数字且是两位小数
原文:https://www.cnblogs.com/lijigang/p/14051470.html