delphi 文本框的keypress事件为什么响应鼠标按键?在线等 ,急急!!!!

我做了一个Delphi程序,在一个文本框中只能输入数字、退格键、小数点,代码如下:procedureTParamConfigForm.lbledt9KeyPress(Se... 我做了一个Delphi程序,在一个文本框中只能输入数字、退格键、小数点,代码如下:
procedure TParamConfigForm.lbledt9KeyPress(Sender: TObject; var Key: Char);
begin
if not((key in ['0'..'9',#8,'.']) ) then // #8 表示在ASCII表中的第8个字符,此处为退格键
begin
Messagebox (0,'输入不是数字或小数点,请重新输入!','警告',MB_ICONEXCLAMATION);
key := #0; // #0 表示在ASCII表中的第0个字符,此处为空字符
end;
end;
可是我在调试时,按住鼠标左键选中文本框中的内容后不放松,然后把鼠标移到文本框之外,这时就产生了文本框的keypress事件,即弹出消息对话框“输入不是数字或小数点,请重新输入!”;或者用鼠标双击文本框时同样也可以触发文本框的keyPress事件。
小弟是新手,请各位前辈们解释一下为什么会这样?小弟不胜感激!
展开
 我来答
thomasdai
2011-05-04 · TA获得超过189个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:220万
展开全部
单纯看你的代码,我测试过了没有什么问题。
不过,如果你只是要实现输入数字的功能,推荐你使用TRzNumbericEdit控件。这个控件可以很简单的实现整数或浮点数的输入。通过IntegersOnly属性修改一下就可以了。

这个控件是Raize Components中的一个,里面还包含了其他许多有用的控件。Delphi最大的好处就是控件很多,多用控件可以大大提高效率。Raize的下载地址网上搜索一下即可。我就不提供了。
追问
我找到原因了,原来是我的电脑问题!
我把程序拷到别的电脑上运行没有任何问题,但是在我的电脑上运行就不行!不知道是不是因为我电脑是笔记本的原因还是什么的,我现在不知道怎么解决这个问题,不过我会试一下你说的控件!谢谢你了!
百度网友1b932d7
2011-05-03 · TA获得超过816个赞
知道小有建树答主
回答量:455
采纳率:0%
帮助的人:421万
展开全部
应该不存在这个问题
你看看你的文本框控件的事件中,ONDbclick事件和ONdragdrop事件是不是也选上onkeypress事件了,如果选上了,删除了就正常了
更多追问追答
追问
我看了,没有ONDbclick事件和ONdragdrop事件,只有onkeypress事件!
追答
比较奇怪,是个诡异的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式