zoukankan      html  css  js  c++  java
  • textbox 控制输入整数,小数

       /// <summary>
            /// keypress事件控制输入
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void decimal_KeyPress(object sender, KeyPressEventArgs e)
            {
                if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar == '.' ||
                    e.KeyChar == (char)Keys.Back || e.KeyChar == (char)Keys.Delete)
                {
                    int precision = 3;
                    int scale = 0;
                    TextBox textBox = sender as TextBox;
                    if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar == '.')
                    {
                        if (scale == 0 && e.KeyChar == '.')
                        {
                            // 没有小数部的时候,小数点输入不可
                            e.Handled = true;
                        }
                        else if (textBox.Text.Contains(".") && e.KeyChar == '.')
                        {
                            // 已经输入'.'的时候,'.'输入不可
                            e.Handled = true;
                        }
                        else
                        {
                            // 除开上面的情况,对整数部和小数部的位数检查
                            string newString = textBox.Text.Substring(0, textBox.SelectionStart) + e.KeyChar +
                                               textBox.Text.Substring(textBox.SelectionStart + textBox.SelectionLength);
                            if (newString.Contains("."))
                            {
                                // 有小数点的时候
                                string[] splits = newString.Split('.');
                                if (splits.Length > 1)
                                {
                                    if (splits[0].Length > precision)
                                    {
                                        e.Handled = true;
                                    }
                                    else if (splits[1].Length > scale)
                                    {
                                        e.Handled = true;
                                    }
                                }
                            }
                            else
                            {
                                // 没有小数点的时候
                                if (newString.Length > precision)
                                {
                                    e.Handled = true;
                                }
                            }
                        }
                    }
                }
                else
                {
                    // 数字以外输入的时候
                    e.Handled = true;
                }
            }
  • 相关阅读:
    netty集成springboot
    NIO-BufferAPI
    python专题知识追寻者对OS的理解
    python专题文件操作
    我终于学会了使用python操作postgresql
    跟着知识追寻者学BeautifulSoup,你学不会打不还口,骂不还手
    那些不懂hystrix的秘密
    如何成为一名Web前端开发人员?
    css剪裁GIF背景图片动画特效
    css 变量教程
  • 原文地址:https://www.cnblogs.com/xiashengwang/p/4611420.html
Copyright © 2011-2022 走看看