请帮忙!关于Edit控件的KeyUp事件
小弟想在Edit控件中日期,例如:如果输入的月份超过1-12,则弹出一个对话框,提示要输入正确的月份,然后自动把Edit控件的Text设置为空,重新输入月份。我用KeyUp事件处理的,相关代码如下:
void __fastcall TForm1::Edit3KeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Edit3->Text.Length()>=2) //自动切换输入框
{
if((Edit3->Text<=12)&&(Edit3->Text>=1))
Edit4->SetFocus(); //如果合法,则切换到下一个Edit控件
else{
MessageBox(Handle,"请输入正确的月份","警告",MB_OK|MB_ICONQUESTION); //否则弹出警告对话框,把Edit3重新 清空,等待用户输入。
Edit3->Text=="";
Edit3->SetFocus();
return;
}
}
}
我执行这段代码的时候,如果输入不正确的月份,就会弹出警告对话框,按回车之后,放开按键,又弹出警告对话框,而且Edit3->Text根本就没清空,请问,如果想达到我的要求,需要怎么改动代码呢??
======================================================================================
[解决办法]
if(Edit3->Text.Length()>=2) //自动切换输入框 { if((Edit3->Text <=12)&&(Edit3->Text>=1)) { Edit4->SetFocus(); //如果合法,则切换到下一个Edit控件 } else { MessageBox(Handle,"请输入正确的月份","警告",MB_OK|MB_ICONQUESTION); //否则弹出警告对话框,把Edit3重新 清空,等待用户输入。 Edit3->Clear(); //注意这里! Edit3->SetFocus(); } }