1

我制作了一个带有 3 个文本框的 Windows 窗体应用程序。要使程序正常工作,我需要将所有三个框都填充一个数字。它们可以是正数或负数。

我用这个:

if(this->textBox1->Text=="" || this->textBox2->Text=="" || this->textBox3->Text=="") {
    MessageBox::Show("Error");
}
else {
    // continue with the program...
}

检查这些框是否已填满,但我不知道如果有像字母或其他符号这样的符号,与数字不同,如何显示错误消息。

4

2 回答 2

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;
}

最后,您有数字number1number2可以在计算中使用。

您不再需要对空字符串进行单独测试,因为TryParse如果输入为空,则会返回 false。

于 2013-10-13T20:00:26.483 回答
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));
    }
}
于 2013-10-13T19:59:57.940 回答