Call a method from another form

前端 未结 2 1531

I try to call a method from another form. My try:

public partial class newLedPopUp : Form
{
    Form1 back = new Form1();
    back.output();
    Close();
}
<         


        
2条回答
  •  执念已碎
    2020-11-27 21:06

    You are closing Form1 immediately after calling output method. Thus I assume, you have some business-related, or data access logic there. Try to move code, which is executed on button3_Click event handler, to separate object

    public class Foo
    {
        public void Output()
        {
           // move here button3_Click code
        }
    }
    

    Then create Foo and pass it to both forms (or you can instantiate it inside forms without dependency injection)

    Foo foo = new Foo();
    Form1 form1 = new Form1(foo);
    LedPopUp form2 = new LedPopUp(foo);
    

    And use it like this:

    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();
         }
    }
    

提交回复
热议问题