Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

samesdavis

Atualizar uma DBGRIDVIEW de um form aberto com New

Recommended Posts

samesdavis

Pessoal,

Tenho um form que mostra a listagem de funcionários através de uma dbgridview, ao clicar duas vezes em qualquer linha da dbgridview, é aberto um form com NEW porque repasso parametros como esse

Public Property pID_ITEM_VND As Long

Nesse form que é aberto como New, existe uma tabcontrol (guias) e uma delas tem uma dbgridview e faz o mesmo processo, quando clico duas vezes sobre essa linha da dbgridview desse form que é aberto com new, ele abre um outro form, também com new onde edito os dados. Ao salvar os dados e fechar o form que foi aberto com new, desejo recarregar a grid já com os dados atualizados, isso não é apenas para edição, também faço inclusão e exclusão.

Mas o que preciso mesmo saber, é como faço para recarregar os dados de uma dbgridview de um form que foi aberto com New.

Eu tentei fazer assim:

Frm_FuncionariosCad.PreencheGrid

Mas não funciona, só funciona se eu fechar o form e abrir de novo.

Alguém sabe como ajudar ?

Share this post


Link to post
Share on other sites
Nelson Sousa

Fala moço,

Quando abrir os formulários abra-os com .ShowDialog

Na próxima linha faça a recarga do grid.

Quando um form é aberto com showdialog o código fica aguardando até o fechamento do mesmo para continuar a execução.


Um Abraço,

Nelson Sousa

Share this post


Link to post
Share on other sites
samesdavis

Mas esses forms que abro, tem esse código no LOAD

MdiParent = Frm_MenuPrincipal

Isso é para que o form fique dentro da MDI.

Se eu abrir com o .ShowDialog, irá dar erro.

Isso eu já havia tentado.

Share this post


Link to post
Share on other sites
Nelson Sousa

Pois então,

Pra evitar isso você deve informar para o form o modo como deseja que ele trabalhe.

Eu faço isso passando na TAG do form a palavra "Diálogo", e no evento load do form eu verifico:

    If Not Me.Tag = "Dialogo" Then
	    MdiParent = Frm_Principal
	    Me.TopMost = False
    Else
	    Me.TopMost = True
    End If


Um Abraço,

Nelson Sousa

Share this post


Link to post
Share on other sites
samesdavis

Não deu certo, acho que dá forma como você usa deve funcionar,

porque você não usa Property e New para passar parâmetros.

Deve ter uma outra forma de se fazer essa atualização da forma que trabalho.

Share this post


Link to post
Share on other sites
samesdavis

Apenas não atualizou e pior, como foi aberta como showdialog, qaundo minimizo as janelas, ela fica fora da MDI

usei o topmost como vc sugeriu e não deu certo.Tenho de achar um plano B.

Share this post


Link to post
Share on other sites
Nelson Sousa

O TopMost é justamente para o form não sair da tela até ser fechado.

Posta o código completo pra gente ver.


Um Abraço,

Nelson Sousa

Share this post


Link to post
Share on other sites
samesdavis

Na verdade, o título do meu tópico deveria ser: ATUALIZAR FORM INSTANCIADO

Consegui resolver:

   Private Sub Frm_FornecedoresCad_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    For Each frm As Form In Frm_MenuPrincipal.MdiChildren
	    If frm.GetType.Name = "Frm_ProdutosCad" Then
		    Dim f As Frm_ProdutosCad = frm
		    f.PreencheGrid()
	    End If
    Next
   End Sub

Edited by samesdavis

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.