Primero, envuelva su código de actualización en un método propio y llámelo desde su método de controlador de eventos de clic, así:
private void btnRefresh_Click(object sender, EventArgs e)
{
this.RefreshData();
}
public void RefreshData()
{
GVThesis.DataSource = thesisRepository.GetThesis();
GVThesis.Refresh();
}
Luego, suponiendo que está instanciando y lanzando el nuevo formulario (Form2) desde su Form1, simplemente ingrese al código de Form2 y cree una nueva sobrecarga de constructor que aceptará una referencia a Form1 y la almacenará en una variable privada, así :
public partial class Form2 : Form
{
private Form1 frm1;
public Form2()
{
InitializeComponent();
}
public Form2(Form1 otherForm)
{
InitializeComponent();
this.frm1 = otherForm;
}
}
Luego puede llamar a la "actualización" desde cualquier lugar que desee en Form2 así:
this.frm1.RefreshData();
EDITAR:
Creé una pequeña muestra, no puedo subirla aquí... pero aquí hay una captura de pantalla del programa en VS, así como una captura de pantalla del resultado de ejecutarlo y realizar la función ...esperamos que eso ayude.
El programa (amplía la vista si parece demasiado pequeña)
El resultado: