C# Calling a method from another Form

后端 未结 4 1308
清酒与你
清酒与你 2020-12-17 07:24

Hi I have 2 Form Form1 and Form2

Form1 have a table and there is my records and there is a Void for refresh the table in the Form1.

Form2 is my insert form I

相关标签:
4条回答
  • 2020-12-17 07:27

    Adjust the construct for Form2 so it takes an extra parameter, like this:

    ...
    private Form1 mainWindow;
    public Form2(Form1 mainWindow)
    {
       this.mainWindow = mainWindow;
    }
    ...
    public void HaveSavedSql()
    {
       this.mainWindow.RefreshAll();
    }
    

    You should consider however looking up on Interfaces so you can seperate concerns. Interfaces are useful for many things!

    0 讨论(0)
  • 2020-12-17 07:28

    In Form1, when you open Form2, attach to Form2 OnClose/Closed event, or a custom Save event, which when raised, refreshes the table in form 1.

    0 讨论(0)
  • 2020-12-17 07:32

    try this to call method from another form :

    if (System.Windows.Forms.Application.OpenForms["ParentFormName"] != null)
        {
            (System.Windows.Forms.Application.OpenForms["ParentFormName"] as   ParentFormName).MethodName(args);
        }
    
    0 讨论(0)
  • 2020-12-17 07:43

    Form2 will have to have a reference to the instance of Form1. You can pass this reference to Form2 when the insert button is clicked:

    Form2 insertForm = new Form2();
    //Form2.ShowDialog(Me); - Correction - 'Me' is for VB. in C# it's:
    Form2.ShowDialog(this);
    

    Next on Form2 you can access Form1 like this:

    (Form1)this.Parent.RefreshTable();
    
    0 讨论(0)
提交回复
热议问题