请教两个使用edit控件时遇到的问题
1.如何控制edit中允许输入的字符与个数(例如,不需输入*、@、$、%,而且只允许输入30个字符,这该怎么做?
2.如何将edit中输入的字符串去除头尾的空格,而中间的空格保留?
问题点数:20、回复次数:3Top
1 楼nightfallrove(过儿 明月装饰了你的窗 你装饰了我的梦)回复于 2003-09-04 21:08:45 得分 8
在KeyPress( key)中写//也可能是Keydown,你试一下吧
if(Key=='%')key=0;//不许输入%
不许超过30个字符就更简单了,,
在lsotFocus()中写//失去焦点时写
if(Edit1->Text.length()>30)
//报错,,把焦点放回edit1中去:edit1->Setfocus();
去掉空格?
看trim(edit1->text);
有没有用吧
Top
2 楼kingcaiyao(aking)回复于 2003-09-04 21:51:21 得分 8
关于问题1:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
::SendMessage(Edit1->Handle,EM_SETLIMITTEXT,30,0);//只允许输入30个字符
}
void __fastcall TForm1::Edit1KeyDown(TObject *Sender,WORD &Key,TShiftState Shift)
{
if(Key=='*' || Key=='@' || Key=='$' || Key=='%'){
Key=0;
::MessageBox(0,"您输入的字符非法!","Error",MB_OK+MB_ICONERROR);
}
}
关于问题2:
用Trim函数就可以了,或用TrimLeft,TrimRight.
即:Edit1->Text.Trim() 或Edit1->Text.TrimLeft(),Edit1->Text.TrimRight();
Top
3 楼CCLIS(www.cclis.com)回复于 2003-09-04 22:03:38 得分 4
对于第一个问题,建议使用MASKEDIT
EDIT的MAXLENGTH设定为30,则在输入时最多可以输入30个字符。
想限制输入的字符,也可用在MASKEDIT的EDITMASK属性里设定,请参考一下MASKEDIT的帮助文档。
第二个问题,使用ANSISTRING的TRIM()即可。
Top




