Najpierw zapakuj swój kod odświeżania we własną metodę i wywołaj ją z metody obsługi zdarzeń kliknięcia, na przykład:
private void btnRefresh_Click(object sender, EventArgs e)
{
this.RefreshData();
}
public void RefreshData()
{
GVThesis.DataSource = thesisRepository.GetThesis();
GVThesis.Refresh();
}
Następnie, zakładając, że tworzysz i uruchamiasz nowy formularz (Form2) ze swojego Form1, po prostu przejdź do kodu Form2 i utwórz nowe przeciążenie konstruktora, które zaakceptuje odwołanie do Form1 i przechowa je w zmiennej prywatnej, tak jak :
public partial class Form2 : Form
{
private Form1 frm1;
public Form2()
{
InitializeComponent();
}
public Form2(Form1 otherForm)
{
InitializeComponent();
this.frm1 = otherForm;
}
}
Następnie możesz wywołać „odświeżenie” z dowolnego miejsca w Form2 w ten sposób:
this.frm1.RefreshData();
EDYTUJ:
Utworzyłem małą próbkę, nie mogę jej tutaj wgrać...ale tutaj jest zrzut ekranu zarówno samego programu w VS, jak i zrzut ekranu wyniku jego uruchomienia i wykonania funkcji ...mam nadzieję, że to pomoże.
Program (przybliż widok, jeśli wydaje się zbyt mały)
Wynik: