c# TextBox只能输入数字的处理方法(完整版各种情况考虑在内,可根据需求灵活修改)
//选择文本框的事件窗口,找到按键输入的方法KeyPress,双击建立新的方法。
/// <summary>
/// textBox只能输入数字的处理方法
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textBox6_KeyPress(object sender, KeyPressEventArgs e)
{
//判断按键是不是要输入的类型。
var textBox1 = (TextBox)sender;
if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && (int)e.KeyChar != 8 && (int)e.KeyChar != 46 && e.KeyChar != 0x2D)
e.Handled = true;
//处理负数
if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length != 0)) e.Handled = true;
//处理0(如果第一位为0且不是全选的情况的话只能输入小数点或者退格键)
if ((int)e.KeyChar != 46 && e.KeyChar != '\b' && textBox1.SelectionLength != textBox1.TextLength)
{
//分正负数两种情况
if (textBox1.TextLength == 1 && textBox1.Text.Substring(0, 1) == "0")
{
e.Handled = true;
}
else if (textBox1.TextLength == 2 && textBox1.Text.Substring(0) == "-0")
{
e.Handled = true;
}
} //小数点的处理。
if ((int)e.KeyChar == 46) //小数点
{
if (textBox1.Text.Length <= 0 || textBox1.Text.LastIndexOf('.') != -1)
e.Handled = true; //小数点不能在第一位(正数)或不能有多个小数点
else if(textBox1.TextLength==1 && textBox1.Text.Substring(0) == "-")
{
e.Handled = true; //小数点不能在第一位(负数)
}
}
}
输入值是数字(含小数)
/// <summary>
/// 判断输入值是否符合要求(含小数)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void tbx_LsRegCapital_KeyPress(object sender, KeyPressEventArgs e)
{
var textBox1 = (TextBox)sender;
if (e.KeyChar == 0x20) e.KeyChar = (char)0; //禁止空格键
if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return; //处理负数
//处理0(如果第一位为0且不是全选的情况的话只能输入小数点或者退格键)
if ((int)e.KeyChar != 46 && e.KeyChar != '\b' && textBox1.SelectionLength != textBox1.TextLength)
{
//分正负数两种情况
if (textBox1.TextLength == 1 && textBox1.Text.Substring(0, 1) == "0")
{
e.Handled = true;
}
else if (textBox1.TextLength == 2 && textBox1.Text.Substring(0) == "-0")
{
e.Handled = true;
}
}
if (e.KeyChar > 0x20)
{
try
{
double.Parse(((TextBox)sender).Text + e.KeyChar.ToString());
}
catch
{
e.KeyChar = (char)0; //处理非法字符
}
}
}
正整数
/// <summary>
/// 判断输入值是否符合要求(正整数)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void tbx_Int_KeyPress(object sender, KeyPressEventArgs e)
{
var textBox1 = (TextBox)sender;
if (e.KeyChar == 0x20 || e.KeyChar == 0x2D || (int)e.KeyChar == 46) e.KeyChar = (char)0; //禁止空格键和负数/小数
if (
((textBox1.TextLength == 0 || textBox1.TextLength==textBox1.SelectionLength) && (int)e.KeyChar == 48)
|| (textBox1.TextLength == 1 && textBox1.Text=="0" && textBox1.TextLength != textBox1.SelectionLength)
)
e.Handled = true;//0的处理
if (e.KeyChar > 0x20)
{
try
{
double.Parse(((TextBox)sender).Text + e.KeyChar.ToString());
}
catch
{
e.KeyChar = (char)0; //处理非法字符
}
}
}
48代表0,57代表9,8代表空格,46代表小数点 ,0x2D代表负数, '\b'代表退格键
第一种代码考虑了各种情况,如不需要可以去除部分代码实现更简单的效果,例如如果不需要负数的就可以把所有关于负数判断的去掉,灵活运用
c# TextBox只能输入数字的处理方法(完整版各种情况考虑在内,可根据需求灵活修改)的更多相关文章
- Asp.net TextBox只能输入数字
原文:Asp.net TextBox只能输入数字 <asp:textbox id="TextBox1" onkeyup="if(isNaN(value))execC ...
- TextBox只能输入数字
Asp.net TextBox只能输入数字 <asp:textbox id="TextBox1" onkeyup="if(isNaN(value))execComm ...
- C# textbox中输入时加限制条件 // C#Winform下限制TextBox只能输入数字 // 才疏学浅(TextBox 小数点不能在首位+只能输入数字)
textbox中输入时加限制条件 分类: C# winform2008-08-26 08:30 306人阅读 评论(0) 收藏 举报 textbox正则表达式object 1.用正则表达式! 2.使用 ...
- C#设置textBox只能输入数字(正数,负数,小数)简单实现
/* *设置textBox只能输入数字(正数,负数,小数) */ public static bool NumberDotTextbox_KeyPress(object sender, KeyPres ...
- [WinForm]TextBox只能输入数字或者正浮点型数字
关键代码: /// <summary> /// 只能输入数字[KeyPress事件] /// </summary> /// <param name="textB ...
- winform 中TextBox只能输入数字
textBox1.KeyPress+=TextNumber_KeyPress; private void TextNumber_KeyPress(object sender, KeyPressEven ...
- textbox只能输入数字或中文的常用正则表达式和验证方法
验证数字的正则表达式集 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9 ...
- C# TextBox 只能输入数字
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { TextBox txt = sender as TextBox ...
- UWP textbox 只能输入数字
private void Testbox_TextChanged(object sender, TextChangedEventArgs e) { var textbox = (TextBox) ...
随机推荐
- C++ STL 容器概述
在STL编程中,容器是经常用到的一种数据结构,在C++标准库中,容器分为: 序列式容器 关联式容器 二者本质区别在于,序列式容器是通过元素在容器中的位置进行顺序存储和元素访问.关联容器则是通过键[ke ...
- String Reversal
Educational Codeforces Round 96 (Rated for Div. 2) - E. String Reversal 跳转链接 题目描述 定义一个操作为交换字符串中相邻的两个 ...
- 李宏毅强化学习完整笔记!开源项目《LeeDeepRL-Notes》发布
Datawhale开源 核心贡献者:王琦.杨逸远.江季 提起李宏毅老师,熟悉强化学习的读者朋友一定不会陌生.很多人选择的强化学习入门学习材料都是李宏毅老师的台大公开课视频. 现在,强化学习爱好者有更完 ...
- js中数组的添加和移除
1.引入js文件 <script src="../plugins/jQuery/jquery-2.2.3.min.js"></script>2.HTML中代 ...
- Servlet Servlet的装载三种情况
感谢原文作者:DaleyDC 原文链接:https://blog.csdn.net/sinat_32873711/article/details/53170342 Servlet的装载三种情况: 自动 ...
- htc 简单的移动效果
转载请注明来源:https://www.cnblogs.com/hookjc/ 1.创建 HTC 文件的架构.一个标准的 HTC 文件含有一个 SCRIPT 块和一对可选的 COMPONENT 标记. ...
- 为什么重写hashCode()和equals()方法
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11477229.html 这两个方法可能大多数新手都没重写过,为什么要重写更是不知道了,所以这里 ...
- java实现ajax excel导入
1,jsp js controller FileUpload.fileUp ObjectExcelRead.readExcel
- eclipse快捷键 包括查找类、方法、变量
[Ct rl+T] 搜索当前接口的实现类 1. [ALT +/] 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时,多体验一下[ ...
- Hadoop文件操作常用命令
1.创建目录 #hdfs dfs -mkidr /test 2.查询目录结构 #hdfs dfs -ls / 子命令 -R递归查看//查看具体的某个目录:例如#hdfs dfs -ls /test 3 ...