怎样屏蔽键入的非法字符

superinsect 2000-07-24 12:16:00
我的Edit框只准输入数字,不准输入字符,怎样让用户输不进字符呢?希望高手指点
...全文
320 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hopping 2000-12-18
  • 打赏
  • 举报
回复
OnKeyPress 事件中
//屏蔽掉非數字的字符
if(Key >= '0' && Key <= '9')
return;

Key = 0;
xiaoyu 2000-12-17
  • 打赏
  • 举报
回复
如aningstar所说,用MaskEdit控件,设置mask属性
aningstar 2000-12-16
  • 打赏
  • 举报
回复
MaskEdit的掩码
wxz 2000-12-14
  • 打赏
  • 举报
回复
如果确是只输入数字,shines的方法最好,如果还需要输入其它的字符,则只能相应OnKeyPress事件
如:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
// 允许数字、-、/、~、空格、删除、回车
if( (Key>='0' && Key<='9') || Key=='-' ||
Key=='/' || Key=='~' || Key==' ' ||
Key=='\b' || Key=='\r')
{
return;
}
Key='\0';
::MessageBeep(MB_ICONEXCLAMATION);
}
WorldCreater 2000-12-14
  • 打赏
  • 举报
回复
判断如果是非法字符
Key = NULL
radish 2000-12-14
  • 打赏
  • 举报
回复
Edit1KeyPress事件
if (Key<='0' || Key>='9')
Edit1->ReadOnly=true;
else
Edit1->ReadOnly=false;
littleinsect 2000-12-13
  • 打赏
  • 举报
回复
编一个专门处理的函数,可以用异常处理
shines77 2000-08-14
  • 打赏
  • 举报
回复

Const GWL_STYLE = (-16)
Const ES_NUMBER = &H2000&

'获得当前 window style
Curstyle = GetWindowLong(YourEdit.hwnd, GWL_STYLE)

Curstyle = Curstyle Or ES_NUMBER '只能输入数字拒绝字母

'设置新 new style
Newstyle = SetWindowLong(YourEdit.hwnd, GWL_STYLE, Curstyle)

这是VB的,相信你稍做修改就行了,绝对OK哦,此方法才是最正点的。
shines77 2000-08-13
  • 打赏
  • 举报
回复
有一个VB的例子的我去找一找,给Edit框发送一个消息就可以了的。
Maxwell 2000-08-10
  • 打赏
  • 举报
回复
在MaskEdit的掩码第一部分(第一个分号前)中键入9只接受数字,但不是必须输入,键入0只接受数字,且必须输入.
LaoZheng 2000-07-27
  • 打赏
  • 举报
回复
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key='*') or (Key='}') or .. then
Key=0;
end;
superinsect 2000-07-25
  • 打赏
  • 举报
回复
maskedit的格式有些难看
alexela 2000-07-25
  • 打赏
  • 举报
回复
david_jts说的方法最适用,但为什么你不用MASKEDIT呢??????
Wingsun 2000-07-24
  • 打赏
  • 举报
回复
可以在键入时检查不过比较复杂,有时不一定正确。
不如在OnExit事件中检查输入的是否正确。
Wingsun 2000-07-24
  • 打赏
  • 举报
回复
可以在键入时检查不过比较复杂,有时不一定正确。
不如在OnExit事件中检查输入的是正确。
david_jts 2000-07-24
  • 打赏
  • 举报
回复
用KeyPress的事件,检查key的值,若不符合你的要求,Key=0即可。
Hank 2000-07-24
  • 打赏
  • 举报
回复
用异常!
try
{
StrToFloat(Edit1->Text);
}
catch(...)
{
ShowMessage("只允许输入数字");
Edit1->SetFocus();
}

13,822

社区成员

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

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