Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Chamando um método de outro Form em C#


Primeiro, envolva seu código de atualização em um método próprio e chame-o do seu método de manipulador de eventos de clique, assim:
    private void btnRefresh_Click(object sender, EventArgs e) 
    { 
        this.RefreshData();
    }

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

Então, supondo que você esteja instanciando e iniciando o novo formulário (Form2) do seu Form1, basta entrar no código do Form2 e criar uma nova sobrecarga de construtor que aceitará uma referência ao Form1 e armazená-lo em uma variável privada, assim :
public partial class Form2 : Form
{
    private Form1 frm1;

    public Form2()
    {
        InitializeComponent();
    }

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

Então você pode chamar o "atualizar" de qualquer lugar que desejar no Form2 assim:
this.frm1.RefreshData();


EDITAR:

Criei uma pequena amostra, não consigo carregá-la aqui... mas aqui está uma captura de tela do próprio programa no VS, bem como uma captura de tela do resultado de executá-lo e executar a função ...espero que ajude.

O programa (amplie sua visão se parecer muito pequeno)


O resultado: