C# wywołanie funkcji rodzica

Witam

Podczas programowanie w Visual Studio 2005 natrafiłem na mały problem.

Mam dwa zaprojektowane okna Form1, Form2.

Z menu w oknie Form1 wywołuję nowe okno Form2.

Chcąc wywołać funkcję znajdującą się w Form1 używam kod:

public partial class Form2 : Form

{

        Form1 my_parent = new Form1();


        private void button3_Click(object sender, EventArgs e)

        {

            my_parent.funkcja_update();

            this.Close();

        }

}

Kod Form1:

public partial class Form1 : Form

{

        public void funkcja_update(){

            my_grid_view_update();

        }


        private void my_grid_view_update()

        {

            SqlConnection connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Bazadanych.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

            connection.Open();


            SqlCommand command = new SqlCommand("SELECT TOP 20 id,nazwa FROM Test WHERE id not in (SELECT TOP 10 id FROM Test ORDER BY id) ORDER BY id", connection);

            SqlDataReader reader = command.ExecuteReader();


            dataGridView1.ColumnCount = 2;

            dataGridView1.Columns[0].Name = "ID";

            dataGridView1.Columns[1].Name = "Nazwa";

            dataGridView1.Rows.Clear();


            try

            {

                while (reader.Read())

                {

                    dataGridView1.Rows.Add(reader[0], reader[1]);

                }

            }

            finally

            {

                reader.Close();

            }


            connection.Close();

        }

Jednak po wywołaniu funkcji button3_Click(object sender, EventArgs e) w Form2 nie następuje żadna reakcja i tym samym zawartość dataGridView1 w Form1 nie jest odświeżona.

Z góry dziękuję za pomoc w rozwiązaniu problemu.

Nic dziwnego, że nie jest odświeżona, przecież w Form2 operujesz na jakimś nowo stworzonym przez siebie obiekcie Form1, który nie jest nawet wyświetlany na ekranie.

W Form2 zrób pole typu Form1 i konstruktor przyjmujący obiekt tego typu. Przy tworzeniu Form2 przekaż mu istniejący obiekt Form1 do tego konstruktora. Wtedy, w metodach Form2 operując na polu będziesz mógł działał na istniejącym Form1.

Wielkie dzięki za pomoc :smiley: