卡在窗口表单上的循环依赖C++



我相信问题是我的代码卡在循环依赖上。我正在尝试将值从一种形式发送到另一种形式。在 form1 中,我声明 Form2 并打开它,因此我无法从 Form2 声明 Form1

,现在我不知道该怎么办。法典:

private: System::Void paieškaToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
PaieskaGUI^ paieska = gcnew PaieskaGUI(); //declaring the other form
paieska->Show(); //opening it when the button is pressed
}

所以上面是form1,当我按下按钮时,它会打开form2。 在下面的代码中,当我按下按钮时显示 form2,它会声明 form1 并将值发送给它

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) 
{
String^ mas = textBox1->Text;
Pagrindinis^ pgrr = gcnew Pagrindinis();
pgrr->SomeText = mas;
this->Hide();
}

我是编程新手。

如果我理解正确,您希望将值传递回原始表单,而不是创建一个新实例。 如果是这种情况,请考虑在显示 form2 之前在 form2 上设置父项,以便可以从 Parent 属性获取第一个窗体,然后在将其转换为适当的类型后设置其上的相关值。

在代码中,您还在单击按钮后隐藏了第二个表单,您是否打算让表单只是一个对话框以获取一些值并将其返回给父级? 如果是这样,也许您需要考虑改用 ShowDialog,这将阻止与父项交互,直到返回,然后您可以使用调用方法中第二个窗体的实例来访问该窗体上的属性。 MSDN 上 Form.ShowDialog 方法的示例演示如何从第二个窗体获取第一个窗体的值。

最新更新