• 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("小数点不能在第一位");                }           }        }

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

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

  • 相关阅读:
    redo log 转csdn之ppp_10001
    Kafka的topic的partitions数的选取
    log4j:WARN No appenders could be found for logger
    HBase统计表的行数
    /bin/bash: /us/rbin/jdk1.8.0/bin/java: No such file or directory
    HBase shell命令
    Linux按名字杀死进程
    Kafka常用命令
    Plugin 'mavenassemblyplugin:' not found
    Linux搜索指定目录中所有文件的内容
  • 原文地址:https://www.cnblogs.com/meimao5211/p/3334177.html
Copyright © 2020-2023  润新知