从另一个类调用方法
本文关键字:方法 调用 另一个 | 更新日期: 2023-09-27 18:17:15
我已经尝试了下面的代码正在工作,但每次我调用calltest()方法时,它都会打开多个表单。我怎么能不打开它的形式调用test()方法?我应该把我所有的方法移动到另一个类文件吗?由于
namespace test1
{
public partial class MainForm : Form
{
public void test()
{
//code
}
...
}
}
namespace test1
{
public partial class SecondForm : Form
{
private void calltest()
{
MainForm form1 = new MainForm();
form1.test();
}
...
}
}
您可能需要重新考虑您的设计。然而,下面是对你问题的直接回答:
您遇到的问题是因为每次在calltest
方法中,您都在创建MainForm
的新实例。
相反,您应该注入MainForm
的原始实例并将其存储在SecondForm
的实例变量中,如下所示:
public partial class SecondForm : Form
{
MainForm form1 = null;
public SecondForm(MainForm main_form)
{
form1 = main_form;
}
private void calltest()
{
form1.test();
}
...
}
现在,当你创建SecondForm
的实例时,确保你注入MainForm
的原始实例如下:
SecondForm second_form = new SecondForm(main_form); //If you are creating this from MainForm, then simply pass `this` as the construction parameter