Mysql
 sql >> Database >  >> RDS >> Mysql

Chiamare un metodo da un altro form in C#

Prima di tutto, avvolgi il tuo codice di aggiornamento in un metodo a sé stante e chiamalo dal tuo metodo di gestione dell'evento click, in questo modo:

    private void btnRefresh_Click(object sender, EventArgs e) 
    { 
        this.RefreshData();
    }

    public void RefreshData()
    {
        GVThesis.DataSource = thesisRepository.GetThesis(); 
        GVThesis.Refresh(); 
    }

Quindi, supponendo che tu stia istanziando e avviando il nuovo form (Form2) dal tuo Form1, vai semplicemente nel codice di Form2 e crea te stesso un nuovo sovraccarico del costruttore che accetterà un riferimento a Form1 e lo memorizzerà in una variabile privata, in questo modo :

public partial class Form2 : Form
{
    private Form1 frm1;

    public Form2()
    {
        InitializeComponent();
    }

    public Form2(Form1 otherForm)
    {
        InitializeComponent();
        this.frm1 = otherForm;
    }
}

Quindi puoi chiamare "refresh" da qualsiasi punto in Form2 in questo modo:

this.frm1.RefreshData();


MODIFICA:

Ho creato un piccolo esempio, non riesco a caricarlo qui... ma ecco uno screenshot sia del programma stesso in VS, sia uno screenshot del risultato dell'esecuzione e dell'esecuzione della funzione ...speriamo che ti aiuti.

Il programma (ingrandisci la vista se sembra troppo piccola)


Il risultato: