我是C ++ Builder XE8的新手。
我希望必须输入的最小和最大数字长度多达六个数字,我还需要确保只输入数字(0是异常),而不是字母字符,退格,标点符号,等
如果输入了除数字以外的任何内容,我还想生成一个错误框。
我尝试了几种代码组合,其中三种可以在下面看到,但这些代码都不起作用。
任何帮助肯定会受到赞赏!
(1)。
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, System::WideChar &Key)
{
Edit1->MaxLength = 6;
if (!((int)Key == 1-9)) {
ShowMessage("Please enter numerals only");
Key = 0;
}
}
(2)。
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, System::WideChar &Key)
{
Edit1->MaxLength = 6;
if (Key <1 && Key >9) {
ShowMessage("Please enter numerals only");
Key = 0;
}
}
(3)。
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, System::WideChar &Key)
{
Edit1->MaxLength = 6;
if( Key == VK_BACK )
return;
if( (Key >= 1) && (Key <= 9) )
{
if(Edit1->Text.Pos(1-9) != 1 )
ShowMessage("Please enter numerals only");
Key = 1;
return;
}
}
答案 0 :(得分:1)
PXSelect<PX.Objects.AR.ARInvoice,
Where<PXSelectGroupBy<PX.Objects.AR.ARAdjust, Where<PX.Objects.AR.ARAdjust.adjdRefNbr, Equal<PX.Objects.AR.ARInvoice.refNbr>, Aggregate<Count>>, Greater<Zero>>>>.Select(new PXGraph());
有一个NumbersOnly
属性:
只允许在文本编辑中键入数字。
将其设置为true并让操作系统为您处理验证。但是,如果您想手动验证它,请使用:
TEdit
答案 1 :(得分:0)
TMaskEdit是一个特殊的编辑控件,用于验证针对掩码输入的文本,该掩码对文本可以采用的有效表单进行编码。掩码还可以格式化显示给用户的文本。
编辑:设置最小长度
void __fastcall TForm1::MaskEdit1Exit(TObject *Sender)
{
if (MaskEdit1->Text.length() < 6)
{
//your error message, or throw an exception.
}
}