如何从textbox数组元素中获取值?

时间:2014-05-24 23:02:19

标签: arrays textbox c++-cli

我做了一个文本框数组,让我们说如果我想从数组元素文本框[0]中获取一个值我该怎么写呢(我的意思是我为sk设置一个值的行)?我很抱歉伙计们我我浪费你的时间,但我不知道用户界面,只是想学习一些东西。谢谢你们。 我做了以下......

所以它应该是这样的? 我创建和10个文本框的数组?

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        string sk;
array<TextBox ^, 1> ^ ar = gcnew array<TextBox ^, 1>(10);
for(int i=0; i < 10; i++)
{
 ar[i] = gcnew array<TextBox^,1>(10);
}

}

}

1 个答案:

答案 0 :(得分:2)

问题是您实际上没有创建任何TextBox es。

array<array<TextBox^,1>^>^ textBoxes = gcnew array<array<TextBox^,1>^>(10);

你已经创建了一个包含10个TextBox数组的数组。

for(int i=0; i < 10; i++)
{
    textBoxes[i] = gcnew array<TextBox^,1>(10);
}

在那里,您为TextBox中的每个元素创建了一个包含10个textBoxes es的数组。所以现在你有一个包含10个 TextBox的引用数组的数组,但你还没有实际创建任何TextBox实例。

问题出现在这一行:

sk = Double::Parse(textBoxes[0]->Text);

textBoxes[0]未引用TextBox,它指的是10 TextBoxes的数组。正确的语法可能是textBoxes[0][0]->Text。但同样,该引用目前为null,因为您尚未创建TextBox es。

虽然有点荒谬,但是这段代码创建了一个包含10个TextBoxes的10个数组的数组,为每个数组实例化TextBox,并用标识符填充每个->Text。 / p>

private:
System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    // An array of 10 arrays of `TextBox`
    array<array<TextBox^,1>^>^ textBoxes = gcnew array<array<TextBox^,1>^>(10);

    for(int i=0; i < 10; i++)
    {
        // Instantiate an array of 10 TextBoxes for each element
        textBoxes[i] = gcnew array<TextBox^,1>(10);

        for (int j=0; j < 10; j++)
        {
            // Create a TextBox instance for each element in the sub-array
            textBoxes[i][j] = gcnew TextBox();

            // Set its text to show its indices in the arrays
            textBoxes[i][j]->Text = String::Format("I am {0},{1}", i, j);
        }
    }
}