• 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
  • 相关阅读:
    50个网页常用小代码
    web前端题目(持续更新)
    一步步构建大型网站架构(转)
    CentOS下配置node.js
    ajax文件上传
    test
    文件上传input简便美化方案
    String.match()与RegExp.exec()
    ie7下zindex问题
    javascript将数组插入到另一个数组中
  • 原文地址:https://www.cnblogs.com/mm08290523/p/5363705.html
Copyright © 2020-2023  润新知