我已经尝试了正在运行的波纹管代码,但每次调用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();
}
...
}
}
答案 0 :(得分:0)
您可能想重新考虑您的设计。但是,这里是您问题的直接答案:
您遇到的问题是因为每次使用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