叶进.NET
If you think you can, you can!
博客园
社区
首页
新随笔
管理
订阅
随笔- 74 文章- 0 评论- 414
C#Winform下用正则表达式限制TextBox只能输入数字
昨天,在网上特别是园子里搜了下如何在Winform下限制TextBox只能输入数字的功能。可是结果基本上都是在web的环境下用正则表达式实现的,而在Winform的平台下,好像没有发现。 就自己循着思路实现了下。
首先,先定义一个
string
,用来表示数字的正则表达式:
private
string
pattern
=
@"
^[0-9]*$
"
;
然后再定义一个
string
,用来记录TextBox原来的内容,以便在输入非数字的时候,文本框的内容可以恢复到原来的值(我不知道TextBox怎么恢复到上一次的内容,只能采用这个笨办法了):
private
string
param1
=
null
;
接着,我们就可以在textBox的TextChanged事件中判断输入的是否是数字,如果是数字,那么就把文本框的内容保存在param1中;如果不是数字,那么取消这次输入,即重新设置文本框的内容为param1:
private
void
textBoxParam1_TextChanged(
object
sender, EventArgs e)
{
Match m
=
Regex.Match(
this
.textBoxParam1.Text, pattern);
//
匹配正则表达式
if
(
!
m.Success)
//
输入的不是数字
{
this
.textBoxParam1.Text
=
param1;
//
textBox内容不变
//
将光标定位到文本框的最后
this
.textBoxParam1.SelectionStart
=
this
.textBoxParam1.Text.Length;
}
else
//
输入的是数字
{
param1
=
this
.textBoxParam1.Text;
//
将现在textBox的值保存下来
}
}
这样,就基本上实现了用正则表达式限制TextBox的输入数字了。
其他的现在也是类似,只要设定比较的正则表达式的内容即可。
汇聚杭州外卖:
外卖汇
Tag标签:
Regular
,
正则表达式
posted @ 2008-05-07 22:52
随风逝去(叶进)
阅读(1080)
评论(7)
编辑
收藏
所属分类:
A. C#.NET
发表评论
回复
引用
查看
#1楼
2008-05-07 22:59 |
Indigo Dai
醉翁之意不在酒
回复
引用
查看
#2楼
[
楼主
]2008-05-07 23:04 |
随风逝去(叶进)
@Indigo Dai
回复
引用
查看
#3楼
2008-05-08 00:01 |
StephenJu
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)//文本框只接受数字的输入和小数点
{
//IsNumber:指定字符串中位于指定位置的字符是否属于数字类别
//IsPunctuation:指定字符串中位于指定位置的字符是否属于标点符号类别
//IsControl:指定字符串中位于指定位置的字符是否属于控制字符类别
if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar))
{
e.Handled = true; //获取或设置一个值,指示是否处理过System.Windows.Forms.Control.KeyPress事件
}
else if (Char.IsPunctuation(e.KeyChar))
{
if (e.KeyChar == '.')
{
if (((TextBox)sender).Text.LastIndexOf('.') != -1)
{
e.Handled = true;
}
}
else
{
e.Handled = true;
}
}
}
回复
引用
查看
#4楼
[
楼主
]2008-05-08 09:35 |
随风逝去(叶进)
@StephenJu
谢谢分享!
回复
引用
查看
#5楼
2008-05-08 09:36 |
置身珠海,学习与奋斗
事件的选择有待进一步考虑。
回复
引用
#6楼
2008-05-08 14:33 |
444 [未注册用户]
WFsoft.wfWinCtrl.wfNumericBox v1.0
http://www.wfsoft.com/middleware_info.asp?id=12010
回复
引用
查看
#7楼
2008-05-12 09:19 |
yellowyu
哈哈!前段时间还用了一个Masktextbox控件,然后把其行为改得跟TEXTBOX一样,看来是多此一举了
受教了
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
高效的忽略大小写的字符串替换(Replace)函数
偷懒秘笈之自动生成属性
深入浅出之正则表达式(一)
C#下如何实现服务器+客户端的聊天程序
求自然连接查询Sql语句的Linq表达式!
如何获得变量的字符名称
ArcObjects GIS应用开发——基于C#.NET--PDF下载
对日项目--编程规范(コーディング標準)
相关链接:
所属分类的其他文章:
【C#食谱】【面食】菜单7:用默认值初始化泛型变量
类和对象
C#Winform下用正则表达式限制TextBox只能输入数字
【C#食谱】【川菜】菜单1:列出被引用的程序集
屏蔽Winform的关闭按钮与“创建窗口句柄时出错”
从C#2.0的角度看.NET 2.0类型系统
了解 .NET Framework 3.0
【C#食谱】【面食】菜单6:泛型约束
轻松得到适用于C# ADO.NET的各种数据库连接字符串
【C#食谱】【面食】菜单5:用泛型副本替换哈希表
最新IT新闻:
Google股价跌破329美元 61%员工期权价值归零
十年祭:昔日明星软件今何在?
六大可能出售IT企业名单:SUN领头或被猎走
Linux内核2.6.27正式到来
《星际争霸2》一分为三 各种族依次登场
公告
MSN
:
adaiye@hotmail.com
From 2008.3.22
I have read:
I am reading......:
C#和.NET 2.0实战 平台、语言与框架
修改代码的艺术
Programing ASP.NET
JavaScript高级程序设计
跟小D每日学口语
IT新闻:
我的最新闪存
3,613,801
10-8 09:51
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
最新评论
我的标签
留言簿
给我留言
查看留言
我管理的小组
机器人的世界
杭州.Net俱乐部
我参加的小组
每日一句英语
LumaQQ.NET
创业交流
设计模式
读书(Books)
ASP.NET
WinForms
Web技术联盟
C#
Debug 探索团队小组
我参与的团队
应届毕业生之家(0/1177)
杭州.Net俱乐部(0/414)
CLR基础研究团队(5/412)
Debug 探索团队(0/53)
WCF技术研究团队(6/184)
我的标签
C#(10)
需求工程(10)
软件工程(10)
.NET(9)
泛型(6)
C# 2.0(3)
.net framework(2)
TCP(2)
Regular(1)
正则表达式(1)
随笔分类
(70)
A. C#.NET(31)
(rss)
B. 个人翻译(18)
(rss)
C. 软件工程(12)
(rss)
D. 管理
(rss)
E. 读书札记(8)
(rss)
F. 数据库
(rss)
G. 设计模式(1)
(rss)
收藏夹
(100)
C#(53)
(rss)
Design Pattern(4)
(rss)
Linq(2)
(rss)
OO(4)
(rss)
PM(5)
(rss)
WCF(3)
(rss)
机器人(9)
(rss)
敏捷开发(1)
(rss)
其他(5)
(rss)
委托 事件(4)
(rss)
未分类(10)
(rss)
Blogs
anyTao
No完成
supper3000
(rss)
亚历山大
好吃的
外卖汇|杭州外卖
汇聚杭州的大部分外卖信息
最新随笔
1. 杭州最全的外卖信息、电话
2. 【C#食谱】【面食】菜单7:用默认值初始化泛型变量
3. 类和对象
4. 【C#食谱】【杭帮菜】菜单2:写一个TCP客户端
5. C#Winform下用正则表达式限制TextBox只能输入数字
6. 【C#食谱】【杭帮菜】菜单1:写一个TCP服务端
7. 【C#食谱】【川菜】菜单1:列出被引用的程序集
8. 实现需求工程的成功方法
9. 实现需求工程的成功方法——难度:高;影响:低
10. 实现需求工程的成功方法——难度:中;影响:低
11. 实现需求工程的成功方法——难度:低;影响:低
12. 实现需求工程的成功方法——难度:高;影响:中
13. 实现需求工程的成功方法——难度:中;影响:中
14. 实现需求工程的成功方法——难度:低;影响:中
15. 实现需求工程的成功方法——难度:高;影响:高
积分与排名
积分 - 95442
排名 - 416
最新评论
1. re: 也谈单件模式
当子窗体From1关闭时, instance并不为null吧 (eastcowboy)
2. re: 【C#食谱】【面食】菜单3:用泛型替代ArrayList
ps处讲解有误 (飞林沙)
阅读排行榜
1. 面试的时候问的一些问题(4344)
2. 配置VS2005,通过NetMassDownloader批量下载和使用源代码(3084)
评论排行榜
1. 面试的时候问的一些问题(98)
Free Web Counter