我已经制作了一个带有3个文本框的Windows窗体应用程序。为了使程序正常工作,我需要用三个框来填充数字。它们可以是正面的也可以是负面的。
我用过这个:
if(this->textBox1->Text=="" || this->textBox2->Text=="" || this->textBox3->Text=="") {
MessageBox::Show("Error");
}
else {
// continue with the program...
}
检查这些方框是否已填满,但如果有一个像字母或其他东西不同的符号,我无法弄清楚如何显示错误信息。
答案 0 :(得分:2)
我认为你真的想对这些数字做些什么?
所以测试转换失败:
int number1;
if (!int::TryParse(textBox1->Text, number1)) {
MessageBox::Show("First box wasn't an integer");
return;
}
double number2;
if (!double::TryParse(textBox2->Text, number2)) {
MessageBox::Show("Second box wasn't numeric");
return;
}
最后,您可以在计算中使用数字number1
和number2
。
您不再需要对空字符串进行单独测试,因为如果输入为空,TryParse
将返回false。
答案 1 :(得分:1)
使用Double.TryParse()
:
Double x;
array<TextBox^>^ inputs = gcnew array<TextBox^>(3);
inputs[0] = this->textBox1;
inputs[1] = this->textBox2;
inputs[2] = this->textBox3;
for (int i = 0; i < inputs->Length; i++)
{
if(!Double::TryParse(inputs[i]->Text, x))
{
MessageBox::Show("Error", String::Format("Cannot parse textBox{0} as number", i+1));
}
}