我做了一个文本框数组,让我们说如果我想从数组元素文本框[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);
}
}
}
答案 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);
}
}
}