C#控制文本框(TextBox)只能输入正数,负数,小数
由于项目需要,需要写一个TextBox文本框,此文本框需要满足:只能输入正数,负数和小数。比如:3,0.3,-4,-0.4等等。
在网上找了许多正则表达式都不好用,由于本人又对正则表达式一窍不通,就换了一种方式。使用了TextBox的KeyPress事件,完成了上述需求。这点代码写了一下午有木有,下面分享给大家。
代码如下:
C#代码
/*
*设置textBox只能输入数字(正数,负数,小数)
*/
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//允许输入数字、小数点、删除键和负号
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != (char)('.') && e.KeyChar != (char)('-'))
{
MessageBox.Show("请输入正确的数字");
this.textBox1.Text = "";
e.Handled = true;
}
if (e.KeyChar == (char)('-'))
{
if (textBox1.Text != "")
{
MessageBox.Show("请输入正确的数字");
this.textBox1.Text = "";
e.Handled = true;
}
}
//小数点只能输入一次
if (e.KeyChar == (char)('.') && ((TextBox)sender).Text.IndexOf('.') != -1)
{
MessageBox.Show("请输入正确的数字");
this.textBox1.Text = "";
e.Handled = true;
}
//第一位不能为小数点
if (e.KeyChar == (char)('.') && ((TextBox)sender).Text == "")
{
MessageBox.Show("请输入正确的数字");
this.textBox1.Text = "";
e.Handled = true;
}
//第一位是0,第二位必须为小数点
if (e.KeyChar != (char)('.') && ((TextBox)sender).Text == "0")
{
MessageBox.Show("请输入正确的数字");
this.textBox1.Text = "";
e.Handled = true;
}
//第一位是负号,第二位不能为小数点
if (((TextBox)sender).Text == "-" && e.KeyChar == (char)('.'))
{
MessageBox.Show("请输入正确的数字");
this.textBox1.Text = "";
e.Handled = true;
}
控制只能输入整数或小数(供TextBox注册KeyPress事件)#region 控制只能输入整数或小数(供TextBox注册KeyPress事件)
/**//// <summary>
/// 控制只能输入整数或小数
/// (小数位最多位4位,小数位可以自己修改)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Txb_Decimal_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(!(((e.KeyChar >= '0') && (e.KeyChar <= '9')) || e.KeyChar <= 31))
{
if(e.KeyChar == '.')
{
if ( ((TextBox)sender).Text.Trim().IndexOf('.') > -1)
e.Handled = true;
}
else
e.Handled = true;
}
else
{
if( e.KeyChar <= 31 )
{
e.Handled = false ;
}
else if( ((TextBox)sender).Text.Trim().IndexOf('.') > -1 )
{
if( ((TextBox)sender).Text.Trim().Substring(((TextBox)sender).Text.Trim().IndexOf('.') + 1 ).Length >= 4)
e.Handled = true ;
}
}
}
#endregion
C#控制文本框(TextBox)只能输入正数,负数,小数的更多相关文章
- js控制文本框仅仅能输入中文、英文、数字与指定特殊符号
JS 控制文本框仅仅能输入数字 <input onkeyup="value=value.replace(/[^0-9]/g,'')"onpaste="value=v ...
- 控制input标签中只能输入数字以及小数点后两位
js 代码如下: /* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { ...
- input输入框只能输入正数和小数(保留小数点后两位)
1.限制只能输入正数和小数保留小数点后两位 1 <input type="number" id="txtNum" /> 2 3 <script ...
- [HTML] 使用size和maxlength分别控制文本框宽度和输入字符数的限制
① size一般可以直观的看到,就是文本框的宽度,只能决定文本框的宽度,也就是可以看到的字符的个数. 如:size="5" 这意味着如果输入 我的国家是北京 那么只能看见 我 ...
- html中radio单选和文本框限制只能输入数字的解决方案
一.当html中存在多个radio单选按钮时将所有的单选按钮name属性设置为一样,就可实现每次只选中一个的效果. 二.限制文本框只能输入数字,代码如下: $(function(){ $(" ...
- js怎么限制文本框input只能输入数字
1.说明 本篇文章介绍怎么使用js限制文本框只能输入数字 2.HTML代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1 ...
- js限制文本框input只能输入数字
JS判断只能是数字和小数点. ,文本框只能输入数字代码(小数点也不能输入) 复制代码 代码示例:<input onkeyup="this.value=this.value.replac ...
- Delphi中限制文本框(TEdit)只能输入数字
procedure Tform1.Edit1KeyPress(Sender: TObject; var Key: Char);var edt: TEdit; str, strL, strR: stri ...
- 限制html文本框input只能输入数字和小数点
代码: <input type="text" class="txt" name="qty" value="" on ...
随机推荐
- Day_02-Python的分支结构和循环结构
分支结构 应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种结构的代码我们称之为顺序结构.然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家 ...
- 阿里云CentOS 7.3安装Redis详细步骤
############ 准备 ############### 从Redis官网下载Linux redis3.2.6版本,我下载的redis-3.2.6.tar.gz(目前最新稳定版),下载到/u ...
- js刷新当前页面的5种方式
1. reload reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false, ...
- 树莓派安装配置teamviewer host
过程: 下载teamviewer,直接到teamviewer的官网上直接下载 下载完后,安装teamviewerw sudo dpkg -i 下载的文件的路径+文件名 安装完后会提示存在依赖问题,修复 ...
- vue路由实例
router.js: import Vue from 'vue' import Router from 'vue-router' import Home from '@/components/Home ...
- win7x64 串口程序无法运行,提示:component 'MSCOMM32.OCX' or one of its dependencies not correctlu registered。。。
VB写的串口工具在win7 x64机器运行时遇到的问题, component 'MSCOMM32.OCX' or one of its dependencies not correctlu regis ...
- kvm中添加VNC密码
#virsh edit 虚机名 <graphics type='vnc' port='5901' autoport='no' listen='0.0.0.0' keymap='en-us'/ ...
- delphi如何按照控件的左右顺序来遍历窗体中的每个控件 [问题点数:20 http://bbs.csdn.net/topics/380216822
delphi如何按照控件的左右顺序来遍历窗体中的每个控件delphi默认是按照控件添加进窗体的顺序来遍历的,有没有哪个属性能控制这个/?? 更多0分享到: 对我有用[0] 丢个板砖[0] 引用 | ...
- GUI_FlowLayout
void setBounds(x, y, width, height) 设置窗体坐标,窗体大小 import java.awt.Frame; public class IntegerDemo { pu ...
- vue --》watch 深度监听的优化。
话不多说,直接上代码,注释很清楚 <template> <div> <input type="text" v-model="value&qu ...