从另一个表单调用方法
我尝试从另一个表单调用一个方法。 我的尝试:
public partial class newLedPopUp : Form { Form1 back = new Form1(); back.output(); Close(); } 和
 public partial class Form1 : Form { newLedPopUp popup = new newLedPopUp(); public void output() { button3_Click(null, null); } } 
有人可以帮我吗? 我真的找不到我的错误,而且我一直在寻找很长一段时间。
您可能需要一个已经打开的窗体的实例,并从那里调用该方法,而不是创build一个新窗体的实例。 你可以试试:
 if (System.Windows.Forms.Application.OpenForms["yourForm"] != null) { (System.Windows.Forms.Application.OpenForms["yourForm"] as Form1).Output(); } 
 再加上你可以在你的Output方法中调用button3_Click(null,null) ,方法是把事件的代码放在一个单独的方法中,然后调用该方法来对付你的button点击事件或公共输出方法 
 调用output方法后立即closuresForm1 。 因此,我假设,您在那里有一些业务相关或数据访问逻辑。 尝试将在button3_Click事件处理程序上执行的代码移动到单独的对象上 
 public class Foo { public void Output() { // move here button3_Click code } } 
然后创buildFoo并将其传递给两个表单(或者可以在不dependency injection的情况下在表单中实例化它)
 Foo foo = new Foo(); Form1 form1 = new Form1(foo); LedPopUp form2 = new LedPopUp(foo); 
像这样使用它:
 public partial class Form1 : Form { private Foo _foo; // without dependency injection: private Foo _foo = new Foo(); public Form1(Foo foo) { _foo = foo; } protected void button3_Click(object sender, EventArgs e) { _foo.Output(); } }