/// <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;
}
}

textbox 控制输入整数,小数的更多相关文章

  1. C#控制文本框(TextBox)只能输入正数,负数,小数

    由于项目需要,需要写一个TextBox文本框,此文本框需要满足:只能输入正数,负数和小数.比如:3,0.3,-4,-0.4等等.        在网上找了许多正则表达式都不好用,由于本人又对正则表达式 ...

  2. C#设置textBox只能输入数字(正数,负数,小数)简单实现

    /* *设置textBox只能输入数字(正数,负数,小数) */ public static bool NumberDotTextbox_KeyPress(object sender, KeyPres ...

  3. EditText 限制输入整数和小数 的位数

    如题,本文主要说的就是  如何限制 EditText 中 可输入整数和小数 的位数 . 近期,由于公司业务需求中有价格输入功能,给出的要求说是,必须整数能输入几位,小数能输入几位...好嘛,产品一句话 ...

  4. JS-正则表达式 限制输入整数、小数

    //只可以输入整数 onkeyup="value=value.replace(/[^\d]/g,'')" //可以输入数字 包括小数 onkeyup="value=val ...

  5. Java初学者作业——用户输入一个小数,程序分解出整数部分和小数部分。

    返回本章节 返回作业目录 需求说明: 用户输入一个小数,程序分解出整数部分和小数部分. 实现思路: 接收用户控制台输入的小数. 用强制类型转换将整数部分得到. 使用用户输入的小数减去整数部分得到小数部 ...

  6. Asp.net TextBox常规输入验证

    Asp.net TextBox只能输入数字<asp:textbox id="TextBox1" onkeyup="if(isNaN(value))execComma ...

  7. Asp.net TextBox只能输入数字

    原文:Asp.net TextBox只能输入数字 <asp:textbox id="TextBox1" onkeyup="if(isNaN(value))execC ...

  8. TextBox只能输入数字

    Asp.net TextBox只能输入数字 <asp:textbox id="TextBox1" onkeyup="if(isNaN(value))execComm ...

  9. 正则-input控制输入

    大于0的数字:/^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/  这正则看不太懂,先放着 作者:Kevin Yang 使用正则表达式找出不包含特定字符串 ...

随机推荐

  1. JPA学习笔记(8)——映射一对多关联关系

    一对多关联关系 本文有很多和多对一是一样的,因此不会写得非常具体. 有看不懂的.能够參考JPA学习笔记(7)--映射多对一关联关系 Order实体类 package com.jpa.helloworl ...

  2. shell将脚本输出结果记录到日志文件

    使用tee命令: sh portal/main.sh |tee log.txt 获取脚本父类路径cmddir="`dirname $0`"

  3. 什么是Web缓存控制(基于HTTP头域)

    这是一篇转载的知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中.为了简要起见,某些实现方面的细节被简化或省略了.如果你更关心细节实现则完全不必耐心看完本文,后 ...

  4. Scala java maven开发环境搭建

        基于maven配置的scala开发环境,首先需要安装 idea 的scala plugin.然后就可以使用maven编译scala程序了.一般情况下都是java scala的混合,所以src下 ...

  5. 在 Unity 中基于 Oculus DK1 的开发

    开发环境: Windows 10 专业版 64位(GeForce GTX 970M,驱动版本:378.72) 大朋助手 1.3.2.10,大朋E2(http://www.deepoon.com/dap ...

  6. Fiddler 抓取 app 网络请求数据

    通过设置代理在同一个路由器下可以通过 Fiddler 实现抓取 app 的网络数据 步骤如下: 手机(Android ,iOS 都可以)和 PC 连到同一个路由器 对手机连接的 WIFI 设置代理,代 ...

  7. virtualbox和vagrant卸载脚本在macbook

    virtualbox和vagrant在macbook版本的安装文件内,都有一个卸载脚本uninstall.tool vagrant2.1.5卸载脚本: #!/usr/bin/env bash #--- ...

  8. 浏览器中beforeunload的使用

    打开一些慢的网站的时候只见浏览器在不停转圈,但是页面还停留在当前页面的,有些网站的效果是你点击链接要跳到另一个页面的时候,在当前页面弹出一个框提示“正在加载中....”, 用到了浏览器的beforeu ...

  9. 菜鸟教程之工具使用(三)——Maven自动部署到Tomcat

    书接上回,上一篇博客介绍了如何用Maven将项目打包,这篇文章就说一下如何用Maven将打完的war包部署到Tomcat,而不是手动的copy过去. 目前比较流行的方式有两种:一种是利用Tomcat官 ...

  10. python(41):copy拷贝(深拷贝deepcopy与浅拷贝copy)

    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1.copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2.copy.deepco ...