奇怪的问题,如何使用户在TEdit中只输入数字?为何在VB中行在BCB中不行?

bitfan 2002-08-10 05:19:44
我在窗体中放了一个编辑框,想让用户只输入数字,屏蔽掉其它所有按键,我在KeyDown中这样写:
void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{

if(!((Key>48)&&(Key<59))) //0~9的ASCII码
Key=0;
}
但在编辑框中仍然显示用户输入的其它字符,比如“a”,这是怎么回事?
我用的是BCB6,是不是一个BUG?
同样的方法我在VB中用过,没问题。
...全文
135 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
susanjona 2003-05-08
  • 打赏
  • 举报
回复
?是吧,sncel(地狱情人)的方法对吗?
如果你第一次输入的是一个字符,它会报错,可第二个它就不报了,就由你输了
还是只有我会出这样的问题啊?
bitfan 2002-08-10
  • 打赏
  • 举报
回复
呵呵,谢诸位大侠鼎力相助。
sncel(地狱情人)的方法很好,但不能输入小数点。
Ernest_tong(tong) 指出的要点很重要,在KeyPress事件中判断按键,用Key=0取消不必要的按键。
大家都有分!
SimonDW 2002-08-10
  • 打赏
  • 举报
回复
封装方式的问题,作为window的基本资源,是可以设只填数字的,
但borland封装时没将该属性包含。
jishiping 2002-08-10
  • 打赏
  • 举报
回复
上面的 KeyPress,KeyDown 不能拦截用户用鼠标从剪贴簿粘贴其它字符,
但是却又拦截了用户用键盘从剪贴簿粘贴数字,同时用户又不能用Del,
Back键删除字符。最简单,最保险的方法,就是 sncel(地狱情人) 说的
方法:
SetWindowLong(Edit1->Handle, GWL_STYLE, GetWindowLong(Edit1->
Handle,GWL_STYLE)|ES_NUMBER);

Ernest_tong 2002-08-10
  • 打赏
  • 举报
回复
在KeyPress 事件中使用才有效。
wxcwuxuchun 2002-08-10
  • 打赏
  • 举报
回复
同意上面的方法,最简单!
sncel 2002-08-10
  • 打赏
  • 举报
回复
这样就可以了。。
SetWindowLong(txtEdit3->Handle,GWL_STYLE,GetWindowLong(txtEdit3->Handle, GWL_STYLE) + ES_NUMBER);
COKING 2002-08-10
  • 打赏
  • 举报
回复
if(Key==VK_RETURN||Key==VK_DELETE) return;
if (Key<'1'||Key>'9') Key=0;
annkie 2002-08-10
  • 打赏
  • 举报
回复
上面写错了:
if(!((Key>48)&&(Key<59)))
Edit1->Text =Edit1->Text.SubString(1,Edit1->Text.Trim().Length()-1);
annkie 2002-08-10
  • 打赏
  • 举报
回复
if(!((Key>48)&&(Key<59)))
Edit1->Text =Edit1->Text.SubString(1,Edit1->Text.Trim.Length()-1);
内容概要:本文档详细介绍了“南方数码房地一体内外业软件”的操作流程,涵盖从数据准备、外业调查、内外业数据对接,到内业数据处理与成果输出的完整工作链。主要包括调查底图制作(支持DWG、MDB、SHP及倾斜三维模型等多种数据源)、导出外业IDB工程文件、平板端外业调查(宗地与房屋核实、电子签章表确认、照片导出)、内外业数据对接(DB与照片数据导入),以及内业的宗地信息完善、界址属性设置、自然幢生成、房屋面积计算、户属性录入,并最终输出宗地图、房产分户图、各类报表及MDB数据库等成果。; 适合人群:从事农村房地一体权籍调查的测绘、不动产登记及相关地理信息行业的内业处理人员、外业调查员和技术管理人员,需具备基础GIS或CAD操作能力; 使用场景及目标:①指导用户系统完成从原始数据到不动产登记成果的全流程作业;②实现外业调查数据高效采集与内业自动化处理衔接,提升房地一体确权登记工作的标准化与效率; 阅读建议:建议结合实际项目按章节顺序操作,重点关注数据格式转换、IDB工程交互逻辑及成果图输出设置,配合软件界面逐步实践,确保各环节数据完整性与准确性。

13,872

社区成员

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

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