zoukankan      html  css  js  c++  java
  • winfrom 限制文本框小数点后两位

     private void numWeight_KeyPress(object sender, KeyPressEventArgs e)
            {
    
                if (char.IsNumber(e.KeyChar) || e.KeyChar == '.' || e.KeyChar == (char)Keys.Back || e.KeyChar == (char)Keys.Delete)
                {
                    e.Handled = false;          //让操作生效     
                    int j = 0;                  //记录小数点个数  
                    int k = 0;                  //记录小数位数  
                    int dotloc = -1;            //记录小数点位置  
                    bool flag = false;          //如果有小数点就让flag值为true  
                    for (int i = 0; i < numWeight.Text.Length; i++)
                    {
                        if (numWeight.Text[i] == '.')
                        {
                            j++;
                            flag = true;
                            dotloc = i;
                        }
                        if (flag)
                        {
                            if (char.IsNumber(numWeight.Text[i]) && e.KeyChar != (char)Keys.Back && e.KeyChar != (char)Keys.Delete)
                            {
                                k++;
                            }
                        }
                        if (j >= 1)
                        {
                            if (e.KeyChar == '.')
                            {
                                if (numWeight.SelectedText.IndexOf('.') == -1)
                                    e.Handled = true;//输入“.”,选取部分没有“.”操作失效  
                            }
                        }
                        if (!flag)                  //此处控制没有小数点时添加小数点是否满足两位小数的情况  
                        {
                            if (e.KeyChar == '.')
                            {
                                if (numWeight.Text.Length - numWeight.SelectionStart - numWeight.SelectedText.Length > 2)        //the condition also can be instead of "textBox1.Text.Substring(textBox1.SelectionStart).Length-textBox1.SelectionLength>2"   
                                    e.Handled = true;
                            }
                        }
                        if (k == 2)
                        {
                            if (numWeight.SelectionStart > numWeight.Text.IndexOf('.') && numWeight.SelectedText.Length == 0 && e.KeyChar != (char)Keys.Delete && e.KeyChar != (char)Keys.Back)      //如果已经有两位小数,光标在小数点右边,  
                                e.Handled = true;
                        }
                    }
                }
                else
                {
                    e.Handled = true;
                }
            }
    View Code
  • 相关阅读:
    hive原理和调优
    python+Eclipse+pydev环境搭建
    使用eclipse上Tomcat插件配置域名、端口号、启动时间详解
    java工具包一:日期处理
    枚举传参,枚举使用详解
    java面试题大全
    八:Lombok 安装、入门
    Java8一:Lambda表达式教程
    七:程序员必读书单
    二:熟悉 TCP/IP 协议
  • 原文地址:https://www.cnblogs.com/mm08290523/p/5363705.html
Copyright © 2011-2022 走看看