C# textbox中输入时加限制条件 // C#Winform下限制TextBox只能输入数字 // 才疏学浅(TextBox 小数点不能在首位+只能输入数字)

textbox中输入时加限制条件

分类: C# winform 306人阅读 评论(0) 收藏 举报

1.用正则表达式!


2.使用TextBox的change事件,对每次输入都进行判断.

3. 响应textchange事件,再加上正则表达式判断。   
   

4 textBox_TextChanged事件代码中加限制条件   
  使用textBox1.Select(int   stat,int   long)方法,来过滤掉无用字符!!Top

5 textBox里输入的都是字符型的,只不过是输入的字符是不是能转换成数值或其它的类

型才是关键的.比如字符"1234.5678"在TextBox里一直都是以字符串的形式存在,但是它

可以转换成数值1234.5678

6 用正则表达式:   
  1.验证数字:"^/d+&"   
  2.验证字母:"^/w+&"Top
  3.特殊字符:"/s"Top

7.用Validate控件,并且使用正则表达式Top

8.比如:你只想在文本筐中输入数字就可以这样做:   
    
  private   void   TextBox1_KeyPress(object  

sender,System.Windows.Forms.KeyPressEventArgs   e)   
  {   
  if(!Char.IsNumber(e.KeyChar))   
  e.Handled=true;   
  }   
    
  其中e.Handled表示设置为已经处理了,不要再处理了,   
  效果就是遇到不是数字的输入就不要处理.Top

9.获取退格键,就是输错了要退格!
   1.SendKeys.Send("{BS}")
   2.把判断语句改为"if(!Char.IsNumber(e.KeyChar)&&e.KeyChar!=(char)8) 8就是代

表退格键
   3.回车是13
   4.查对应ascii码就可以的

 
-----------------------------------------------------
 

C#Winform下限制TextBox只能输入数字  

2010-07-21 08:41:07|  分类: C#|字号 订阅

 
 

C#的winform中控制TextBox中只能输入数字

private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    //阻止从键盘输入键
    e.Handled = true;
    if(e.KeyChar>='0' && e.KeyChar <='9')
    {
        e.Handled = false;
    }

}


多条件的:

private void TxtUser_KeyPress(object sender, KeyPressEventArgs e)
        {
            //阻止从键盘输入键
           e.Handled = true;

            if ((e.KeyChar >= '0' && e.KeyChar <= '9') || (e.KeyChar == (char)8))
            {

                if ((e.KeyChar == (char)8)) { e.Handled = false; return; }
                else
                {
                    int len = TxtUser.Text.Length;
                    if (len < 5)
                    {
                        if (len == 0 && e.KeyChar != '0')
                        {
                            e.Handled = false; return;
                        }
                        else if(len == 0)
                        {
                            MessageBox.Show("编号不能以0开头!"); return;
                        }
                        e.Handled = false; return;
                    }
                    else
                    {
                        MessageBox.Show("编号最多只能输入5位数字!");
                    }
                }
            }
            else
            {
                MessageBox.Show("编号只能输入数字!");
            }
          

        }

 
 
 
 
 ---------------------------------------------------------------

才疏学浅(TextBox 小数点不能在首位+只能输入数字)

 
复制代码
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar !=8&&e.KeyChar!=13&&!char.IsDigit(e.KeyChar)&&e.KeyChar!=46)
{

//8 删除键 13回车 46 小数点
MessageBox.Show("请输入数字");
e.Handled = true;//禁止输入
}
if(e.KeyChar==46)
{
if (textBox1.Text.Length<=0)//判断小数点不能为1
{
e.Handled = true;
MessageBox.Show("小数点不能在第一位");
}
}
}
复制代码

结论:

上面的案例是错误的,这是互联网上的版本,当你第一次输入小数点,是提示的,但是,如果我先输入123456,然后把光标移到第一位再次输入 小数点 就没办法判断了。

复制代码
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar !=8&&e.KeyChar!=13&&!char.IsDigit(e.KeyChar)&&e.KeyChar!=46)
{

//8 删除键 13回车 46 小数点
MessageBox.Show("请输入数字");
e.Handled = true;//禁止输入
}
if(e.KeyChar==46)
{
if (textBox1.SelectionStart==0)//判断小数点不能为1
{
e.Handled = true;
MessageBox.Show("小数点不能在第一位");
}
}
}
复制代码

这是我的代码,让判断跟着 光标走即可。

1
2
3
4
5
6
7
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)       
{          
   int flag=0;
   if(e.KeyChar !=8&&e.KeyChar!=13&&!char.IsDigit(e.KeyChar)&&e.KeyChar!=46)           { 
                            //8 删除键 13回车 46 小数点               MessageBox.Show("请输入数字");               e.Handled = true;//禁止输入           }            if(e.KeyChar==46 && flag==1)            {                if (textBox1.SelectionStart==0)//判断小数点不能为1                {
                   flag=1;
                   e.Handled = true;                    MessageBox.Show("小数点不能在第一位");                }           }        }

---------------------------------------------------------------

如果你交给某人一个程序,你将折磨他一整天;如果你教某人如何编写程序,你将折磨他一辈子。

原文地址:https://www.cnblogs.com/meimao5211/p/3334177.html