zoukankan      html  css  js  c++  java
  • Winform TextBox中只能输入数字的几种常用方法(C#)

    方法一:

    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;   //处理非法字符
                    }
                }
    }

    方法二:

    private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
     {
        if(e.KeyChar!=8&&!Char.IsDigit(e.KeyChar))
        {
          e.Handled = true;
        }
    }
    或者

    private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
    {
        if(e.KeyChar!='\b'&&!Char.IsDigit(e.KeyChar))
        {
          e.Handled = true;
        }

    }

    方法三:

    private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar!='\b')//这是允许输入退格键
    {
    if((e.KeyChar<'0')||(e.KeyChar>'9'))//这是允许输入0-9数字
    {
    e.Handled = true;
    }
    }
    }

    方法四:

    private void textBox1_Validating(object sender, CancelEventArgs e)
    {
    const string pattern = @"^\d+\.?\d+$";
    string content = ((TextBox)sender).Text;

    if (!(Regex.IsMatch(content, pattern)))
    {
    errorProvider1.SetError((Control)sender, "只能输入数字!");
    e.Cancel = true;
    }
    else
    errorProvider1.SetError((Control)sender, null);
    }

    方法五:

    private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar=='.' && this.textBox1.Text.IndexOf(".")!=-1)
    {
    e.Handled=true;
    }

    if(!((e.KeyChar>=48 && e.KeyChar<=57) || e.KeyChar=='.' || e.KeyChar==8))
    {
    e.Handled=true;
    }

    }

    方法六:

    private void tbx_LsRegCapital_KeyPress(object sender, KeyPressEventArgs e)
    {
                if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar))
                {
                    e.Handled = true;//消除不合适字符
                }
                else if (Char.IsPunctuation(e.KeyChar))
                {
                    if (e.KeyChar != '.' || this.textBox1.Text.Length == 0)//小数点
                    {
                        e.Handled = true;
                    }
                    if (textBox1.Text.LastIndexOf('.') != -1)
                    {
                        e.Handled = true;
                    }
                }      
      }  

    方法七:

    利用ASCII码处理办法、
    {

                if ((e.KeyChar <= 48 || e.KeyChar >=57) && (e.KeyChar != 8) && (e.KeyChar != 46))
                  e.Handled = true;
    ================48代表0,57代表9,8代表空格,46代表小数点
    }

  • 相关阅读:
    1052 Linked List Sorting (25 分)
    1051 Pop Sequence (25 分)
    1050 String Subtraction (20 分)
    1049 Counting Ones (30 分)
    1048 Find Coins (25 分)
    1047 Student List for Course (25 分)
    1046 Shortest Distance (20 分)
    1045 Favorite Color Stripe (30 分)
    1044 Shopping in Mars (25 分)
    1055 The World's Richest (25 分)
  • 原文地址:https://www.cnblogs.com/wuhuisheng/p/2019665.html
Copyright © 2011-2022 走看看