I have Form1 and Form2.
Form1 has a dataGridView and a button for opening Form2. I have written a method in Form1 as below that perfectly refreshes the dataGridView:
public void RefreshGrid()
{
dataGridView1.DataSource = empControl.SelectAll(); //Works great
}
In Form2 I insert into the table and use the below Code for Calling the above method. When I traced the code I saw that it implements all the way but the dataGridView isn't refreshed!
private void btnInsert_Click(object sender, EventArgs e)
{
//Insert Code (Inserts perfectly)
Form1 frm = new Form1();
frm.RefreshGrid();
this.Close();
}
}
I also tried the FormClosing Event of Form2 but it didn't do the trick.
Help me out plz!
Your problem is that you're creating a new instance of Form1
. Instead of new Form1
you need to pass an instance of the existing Form1
to Form2
I solved my problem with the help of @MikeH and @Sybren:
Form1:
Form2 frm = new Form2(this);
frm.Show();
Form2:
private readonly Form1 frm1; //readonly is optional (For safety purposes)
public Form2(Form1 frm)
{
InitializeComponent();
frm1 = frm;
}
private void btnInsert_Click(object sender, EventArgs e)
{
frm1.RefreshGrid();
this.Close();
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.