C#TextBox数字验证方法
在 C# 中,经常需要对用户输入的数据进行验证,确保它们符合预期的格式或类型。对于数字验证,可以通过监听 KeyPress 事件来实现。下面详细介绍几种不同的数字验证方式。
1. 基本数字验证
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != 8 && !Char.IsDigit(e.KeyChar)) //检查是否为数字或退格键
{
e.Handled = true; //如果不是数字,则阻止输入
}
}
这段代码检查输入字符是否为数字或者退格键(ASCII码值为8)。如果不是数字,则通过设置 e.Handled
属性为 true
来阻止该字符被输入到文本框中。
2. 处理空格、负号及非数字字符
private void tBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 0x20) e.KeyChar = (char)0; //禁止输入空格
if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return; //允许第一个字符为负号
if (e.KeyChar > 0x20)
{
try
{
double.Parse(((TextBox)sender).Text + e.KeyChar.ToString()); //尝试将现有文本加上新字符转换为数字
}
catch
{
e.KeyChar = (char)0; //如果转换失败,则阻止输入
}
}
}
这段代码更复杂一些,它处理了空格、负号以及非数字字符的情况。首先禁止输入空格;其次允许第一个字符为负号;最后尝试将现有文本加上新字符转换为数字,如果转换失败则阻止输入。
3. 验证小数点输入
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar != 'b') //检查是否为退格键
{
if ((e.KeyChar < '0') || (e.KeyChar > '9')) //检查是否为数字
{
e.Handled = true; //如果不是数字,则阻止输入
}
}
}
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar == '.' && this.textBox1.Text.IndexOf(".") != -1) //防止重复输入小数点
{
e.Handled = true; //如果已有小数点,则阻止再次输入
}
}
这段代码首先检查输入字符是否为数字。如果是小数点,则验证是否已输入过小数点,防止重复输入。
2.85KB
文件大小:
评论区