none
atualizar data grid view RRS feed

  • Discussão Geral

  • boa tarde

    em uma aplicação win forms, preciso que atualize uma data grid view de outro form quando eu salvo dados.

    como faço isso?

    o problema é que o form que quero que atualize está aberto

    obrigado


    • Editado Hawk B quarta-feira, 13 de abril de 2016 19:32
    • Tipo Alterado Marcos SJ quarta-feira, 13 de abril de 2016 19:52 How to
    quarta-feira, 13 de abril de 2016 19:30

Todas as Respostas

  • Olá Amigo,

    Você terá que capturar a instancia do outro Form e chamar um método para atualizar (executar um databind()) no grid.

    Ficaria algo como:

    public partial class Form1 {
    
       private static Form1 instancia;
    
       public Form1()
       {
           instancia = this;
       }
    
       public static Form1 ObterInstancia() 
       {
           return instancia;
       }
    
       public void AtualizarDadosGrid() 
       {
          grv1.DataBind();
       }
    
       ///...
    }
    
    

    No outro Form, vamos chamar de Form2, você faria assim:

    public partial class Form2 { public void Salvar_Click() { Form1.ObterInstancia().AtualizarGrid(); }

       ///... }



    • Editado psmarqu3s quarta-feira, 13 de abril de 2016 19:58
    quarta-feira, 13 de abril de 2016 19:58
  • Boa tarde, 

    Crie um método Publico no Form1 onde o mesmo vai atualizar os dados da GridView. Altere o Construtor do Form2 para receber a referência do Form1. Assim dentro do Form 2, você chama o método de atualização que está no Form1.
    Exemplo:
    Form1:

    public void AtualizarDados()
    {
        //Fazer a consulta no banco e carregar a Grid
        dataGridView1.DataSource = lista;
    }

    No botão que chama o Form2
    new Form2(this).ShowDialog();

    Form2
    No Construtor do Form2:

    Form1 form;
    public Form2(Form1 frm1)
    {
        form = frm1;
        InitializeComponent();
    }

    Para Atualizar a grid agora:
    form.AtualizarDados(); 

    Outra maneira de fazer isso é modificar o método da grid para public. Dai você acessa direto sem precisar do método AtualizarDados()

    Espero ter ajudado.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    quarta-feira, 13 de abril de 2016 20:01
  • não está aparecendo o link "Marcar como resposta".

    Deu certo Silvaney.

    Coloquei o método como public e passei a instancia do form que quero atualizar pelo construtor do form que estou trabalhando.

    obrigado psmarqu3s!

    obrigado Silvaney!


    • Editado Hawk B quarta-feira, 13 de abril de 2016 20:34
    quarta-feira, 13 de abril de 2016 20:28
  • Olá Hawk

    Primeiro, você precisa criar um método PUBLICO no outro formulário responsável por atualizar o grid. Geralmente vai ao banco de dados, busca os dados e atribui o datasource.

    Você pode colocar como estático para pegar sem precisar instanciar primeiro.

    Mas verifique se essa será a melhor maneira para o seu caso. É muito melhor a pessoa entrar no formulário para atualizar os dados ao invés de fazer isso pelo form anterior.

    Qualquer coisa, segue um vídeo abaixo:

    https://channel9.msdn.com/Series/Windows-Forms/Windows-Forms-Parte-6


    Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.

    Mauricio Junior - Comunidade www.ecode10.com

    quarta-feira, 13 de abril de 2016 21:19