叶进.NET
If you think you can, you can!
博客园
社区
首页
新随笔
管理
订阅
随笔- 74 文章- 0 评论- 412
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
随风逝去(叶进)
阅读(919)
评论(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键可以直接提交]
相关文章:
深入浅出之正则表达式(一)
C#下如何实现服务器+客户端的聊天程序
正则表达式基础知识
全面剖析C#正则表达式
用正则表达式限制只能输入中文
C# 如何实现文本框只能输入数字
相关链接:
所属分类的其他文章:
【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新闻:
淘宝与微软总部达成首次合作 Silverlight加入店铺
苹果9日发布iTunes 8、iPhone 2.1和第四代iPod Nano
微软出品8GB蓝色和120GB Zune播放器
千亿美元市值榜:微软居首移动第二 诺基亚退榜
Google申请“海上数据中心”专利 可能付诸行动
公告
MSN
:
adaiye@hotmail.com
From 2008.3.22
I have read:
I am reading......:
C#和.NET 2.0实战 平台、语言与框架
修改代码的艺术
Programing ASP.NET
JavaScript高级程序设计
跟小D每日学口语
IT新闻:
我的最新闪存
外卖汇的alexa排名怎么还是这个数啊!
9-8 14:18
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
最新评论
我的标签
留言簿
给我留言
查看留言
我管理的小组
杭州.Net俱乐部
机器人的世界
我参加的小组
每日一句英语
LumaQQ.NET
读书(Books)
创业交流
ASP.NET
设计模式
书籍推荐
Web技术联盟
Debug 探索团队小组
WinForms
我参与的团队
应届毕业生之家(0/1172)
杭州.Net俱乐部(0/414)
CLR基础研究团队(0/387)
Debug 探索团队(0/51)
WCF技术研究团队(0/155)
我的标签
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. 实现需求工程的成功方法——难度:高;影响:高
积分与排名
积分 - 94038
排名 - 410
最新评论
1. re: 杭州最全的外卖信息、电话
是非常全,加油,老弟! (jessica ye)
2. re: C#语言重要常识
路过.加油!向你学习 (李华君)
阅读排行榜
1. 面试的时候问的一些问题(4322)
2. 配置VS2005,通过NetMassDownloader批量下载和使用源代码(3037)
评论排行榜
1. 面试的时候问的一些问题(98)
Free Web Counter