问题是文本框位于 panel1 中,而 panel1 位于 panelshed 中
大面板
string str;
std::ofstream out("schedule"+ID+".txt");
if (out.is_open())
{
for (int i = 1; i<15; i++)
{
str = SystemToStl(this->panelshed->Controls["textBox" + i.ToString()]->Text);
out << str << std::endl;
}
}
out.close();
System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
小面板
str = SystemToStl(this->panel1->Controls["textBox" + i.ToString()]->Text);
System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
另一种变体
str = SystemToStl(this->Controls["textBox" + i.ToString()]->Text);
System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
更多的
str = SystemToStl(this->panelshed->panel1->Controls["textBox" + i.ToString()]->Text);
^
Ошибка (активно) E0135 класс "System::Windows::Forms::Panel" не содержит члена "panel1"
更新。这样阅读有效
std::string line;
std::ifstream in("schedule" + ID + ".txt");
if (in.is_open())
{
int i = 1;
while (std::getline(in, line))
{
String^ line2 = gcnew String(line.c_str());
this->panel1->Controls["textbox" + i.ToString()]->Text = line2; ///////////работает
i++;
}
}
in.close();panel1