请问如何控制Edit,使用户只能输入数字?

Prior_121 2003-08-30 04:25:03
谢谢
...全文
169 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
everandforever 2003-09-02
  • 打赏
  • 举报
回复
AGREE WITH:
回复人: COKING(疯间猖越) ( ) 信誉:100 2003-08-30 21:28:00 得分:0
SetWindowLong(Edit1->Handle,GWL_STYLE,GetWindowLong(Edit1->Handle,GWL_STYLE)|ES_NUMBER) ;

保证好用.
Prior_121 2003-09-02
  • 打赏
  • 举报
回复
最后通过捕获意外完成
sunmedia 2003-08-31
  • 打赏
  • 举报
回复
通过Edit控件的KeyPress事件判断:
方法有2种:
1.直接通过字符比较判断
if(!(Key>='0'&&Key<='9'))
Key=NULL;
2.通过输入字符的ASCII码判断:
if((key<48||key>57)&&key!=13&&key!=8)
Key=NULL;
这两种判断都可以
xiaozerong 2003-08-31
  • 打赏
  • 举报
回复
关注
Bensoon 2003-08-30
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2159/2159667.xml?temp=.5631525
COKING 2003-08-30
  • 打赏
  • 举报
回复
SetWindowLong(Edit1->Handle,GWL_STYLE,GetWindowLong(Edit1->Handle,GWL_STYLE)|ES_NUMBER) ;
limu810812 2003-08-30
  • 打赏
  • 举报
回复
if((key<48||key>57)&&key!=13&&key!=8)
ShowMessage("错误!只能输入数字");
aliker 2003-08-30
  • 打赏
  • 举报
回复
楼上的朋友,如果是粘贴进去的就不行了。没有onKeyPress事件啊!!!!还是用MaskEdit为好!楼主,你说呢??
supwjhuLoveCjj 2003-08-30
  • 打赏
  • 举报
回复
1.if(!(Key>='0'&&Key<='9'))Key=NULL;
-------------------------------------
2.Trim().ToInt()
FallenAngel 2003-08-30
  • 打赏
  • 举报
回复
是Trim().ToInt()
srxumin 2003-08-30
  • 打赏
  • 举报
回复
说明:
在onKeyPress事件中检测ASCII码范围是否在0-9之间

示例:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if(!(Key>='0'&&Key<='9'))Key=NULL;
}
Prior_121 2003-08-30
  • 打赏
  • 举报
回复
不好使
用ToInt()容易出错
比如我设了输入三位数字,即:999
当用户输入1位或两位数字后,ToInt()出错。
有何好办法?
jiangshx 2003-08-30
  • 打赏
  • 举报
回复
同意楼上,也可以在Edit的OnKeyPress事件中加如下语句:
if((Key<'0')||(Key>'9'))
Key=NULL;
sprewellkobe 2003-08-30
  • 打赏
  • 举报
回复
设置EditMask
ch_builder 2003-08-30
  • 打赏
  • 举报
回复
只要把EditMask的属性设置正确就可以了:)
掩码字符表



掩码字符
意 义


去掉输入数据开头的空格符

>
让输入数据的字母都变成大写,直到遇上掩码字符<

<
让输入数据的字母都变成小写,直到遇上掩码字符>

<>
不限制输入数据字母是大写或小写

\
若在输入格式内加入某个特殊字符,只要在特殊字符

的前面加上此掩码就可以了。说明了就和C语言中的用在printf中的那个转意字符一样,哈哈她们的模样原来也一样

L
允许输入英文字母,而且一定要输入

l
允许输入英文字母,不一定要输入

A
允许输入英文字母和阿拉伯数字,一定要输入

a
允许输入英文字母和阿拉伯数字,不一定要输入

C
允许输入任何字符,一定要输入

c
允许输入任何字符,不一定要输入

0
允许输入阿拉伯数字,一定要输入

9
允许输入阿拉伯数字,不一定要输入

#
允许输入阿拉伯数字或正、负号字符

:
用来分隔时间数据中的时、分、秒

/
用来分隔日期数据中的年、月、日

;
用来分隔掩码字段

_
代表空格符,运行时显示下划线字符






例:电话号码→!\(9999\)999999999;l;_

日 期→!0000/99/99;l;_

ch_builder 2003-08-30
  • 打赏
  • 举报
回复
好象这时我们都用MaskEdit:)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧