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) ...
随机推荐
- iptables的概念与底层原理(详解)
目录 一:iptables 1.iptables简介 2.什么是防火墙? 3.防火墙种类 二:iptables基本介绍 1.解析内容 三:iptables流程(讲解) 1.流入本机 2.解析(流入本机 ...
- linux中rpm安装
目录 一:linux中rpm安装 1.rpm简介 2.区别 3.RPM命令五种基本模式 二:RPM安装全面解析 1,下载软件包 2, 安装软件包 3, 尝试卸载 4, 更新(升级) 5,软件包名称: ...
- python项目中 ,open() 方法, 如何读取json文件的位置。
一 copy 目标文件绝对路径的URL. 固定在你电脑上的路径.简单好用.
- 10分钟了解代码命名规范(Java、Python)
前言 关于代码命名,我相信是经常困扰很多小伙伴的一个问题,尤其是对于强迫症晚期患者.怎么说呢,每次小编在写代码之前,总会在想啊想啊,用什么命名法好呢?对于经常在C++.Java.Python等主流语言 ...
- 阿里P8整理Mysql面试题答案,助你“脱颖而出”,吊打面试官!(建议收藏)
前言 作为一名开发人员,每天英高都在和数据库进行着斗智斗勇,尤其是互联网行业,对MySQL的使用是比较多的.同样的,因为mysql的重要性以及普及性,在面试的时候一定是一个面试的重点或者说常问问题,说 ...
- Redis 分布式锁使用不当,酿成一个重大事故,超卖了100瓶飞天茅台!!!(转)
基于Redis使用分布式锁在当今已经不是什么新鲜事了. 本篇文章主要是基于我们实际项目中因为redis分布式锁造成的事故分析及解决方案.我们项目中的抢购订单采用的是分布式锁来解决的,有一次,运营做了一 ...
- Copy as Markdown - 将页面链接按照 Markdown 格式copy
将页面文字和链接组成 Markdown 格式的网址 直接对页面链接右键使用时,无法获取链接标题,只能显示 No Title 所以需要: 选中「想作为标题的部分文字」, 然后去对「页面链接」右键-> ...
- 高德地图定位api以及导航和定位 位置的偏差
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.2&key=37 ...
- LVS负载均衡群集部署——NAT模式
LVS负载均衡群集部署--NAT模式 1.群集应用概述 2.NAT模式LVS负载均衡群集部署 1.群集应用概述: 存在的问题: 互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求 ...
- 论文翻译:2022_PACDNN: A phase-aware composite deep neural network for speech enhancement
论文地址:PACDNN:一种用于语音增强的相位感知复合深度神经网络 引用格式:Hasannezhad M,Yu H,Zhu W P,et al. PACDNN: A phase-aware compo ...