Inquiridor
atualizar data grid view

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
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
-
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.
public void AtualizarDados()
Exemplo:
Form1:
{
//Fazer a consulta no banco e carregar a Grid
dataGridView1.DataSource = lista;
}
No botão que chama o Form2
Form1 form;
new Form2(this).ShowDialog();
Form2
No Construtor do Form2:
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.
-
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
-
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