CHAMAR METODO DE OUTRO FORM

 Tópico anterior Próximo tópico Novo tópico

CHAMAR METODO DE OUTRO FORM

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#489515 - 16/07/2019 23:01:42

TRTNCG
CAMPINA GRANDE
Cadast. em:Fevereiro/2004


Última edição em 16/07/2019 23:20:20 por TRTNCG

Gente seguinte: Tenho 2 forms (PRODUTOS, CONSULTA_PRODUTOS) no form PRODUTOS tenho um mtodo pblico chamado Pesquisar, nele funciona tudo certinho, no entanto quando vou chamar este mtodo a partir de CONSULTA_PRODUTOS, no limpa o listview que est no form PRODUTOS.

estou chamando assim:
Dim fprodutos As New produtos
fprodutos.Pesquisar(CampoDoBanco, txtde.Text, txtate.Text, []avancada[])

O que est errado? no d erro a consulta executado pois no step by step t trazendo certinho mais no limpa o list e preenche com o resultado.

Vejam a imagem abaixo:





Resposta escolhida #489516 - 16/07/2019 23:28:03

JABA
CABO FRIO
Cadast. em:Agosto/2005


O erro est no operador New. O operador NEW cria uma nova instncia em memria. Como voc criou uma nova instncia desse form, acabou-se criando um outro, e agora existem dois forms produtos sendo executados. Sendo assim, tudo o que voc modifica em um, no modifica no outro, pois as instncias no so as mesmas.

Para chamar sempre o mesmo form, o vb.net permite fazer isso usando o mesmo nome do qual ele foi criado. Ex:

[]Chame direto sem usar o operador New
PRODUTOS.Pesquisar(CampoDoBanco, txtde.Text, txtate.Text, []avancada[])



_______________________________________________________________________________________________

Se a alma ou esprito so imateriais, como eles fazem para se localizar quando o corpo est em movimento?



#489517 - 16/07/2019 23:36:16

TRTNCG
CAMPINA GRANDE
Cadast. em:Fevereiro/2004


Citação:
:
O erro est no operador New. O operador NEW cria uma nova instncia em memria. Como voc criou uma nova instncia desse form, acabou-se criando um outro, e agora existem dois forms produtos sendo executados. Sendo assim, tudo o que voc modifica em um, no modifica no outro, pois as instncias no so as mesmas.

Para chamar sempre o mesmo form, o vb.net permite fazer isso usando o mesmo nome do qual ele foi criado. Ex:

[]Chame direto sem usar o operador New
PRODUTOS.Pesquisar(CampoDoBanco, txtde.Text, txtate.Text, []avancada[])



Mesmo alterando como sugeriu, que na verdade era como coloquei no incio, ainda continua da mesma forma sem limpar o listview do form PRODUTOS.




#489518 - 16/07/2019 23:45:33

JABA
CABO FRIO
Cadast. em:Agosto/2005


Última edição em 16/07/2019 23:46:25 por JABA

Se a nica inteno limpar tudo, ento voc pode fazer como vinha fazendo e chama-lo atravs da nova instncia criada. Mas tenha em mente que ele no se trata mais daquele form chamado inicialmente.

Dim fprodutos As New produtos
fprodutos.Pesquisar(CampoDoBanco, txtde.Text, txtate.Text, []avancada[])
fprodutos.Show()



_______________________________________________________________________________________________

Se a alma ou esprito so imateriais, como eles fazem para se localizar quando o corpo est em movimento?



#489519 - 17/07/2019 00:02:01

TRTNCG
CAMPINA GRANDE
Cadast. em:Fevereiro/2004


Citação:
:
Se a nica inteno limpar tudo, ento voc pode fazer como vinha fazendo e chama-lo atravs da nova instncia criada. Mas tenha em mente que ele no se trata mais daquele form chamado inicialmente.

Dim fprodutos As New produtos
fprodutos.Pesquisar(CampoDoBanco, txtde.Text, txtate.Text, []avancada[])
fprodutos.Show()



No somente limpar se vc olhar na tela a tela de Pesquisa fica aberta, ao clicar em OK, era para limpar o listview da tela de PRODUTOS e preencher de acordo com o resultado da pesquisa.



#489520 - 17/07/2019 00:46:59

JABA
CABO FRIO
Cadast. em:Agosto/2005


Ento rapaz, como disse, quando se utiliza o New, voc est fazendo referncia a um novo form em memria. Ou seja, um novo form []cadastro de produtos[] existir na memria. Assim, existiro dois em memria: o que j est aberto na tela e o outro que acabou de ser criado. Isso significa que tudo o que se fizer nessa nova instncia no afetar esse que j est aberto, pois se tratam de instncias diferentes. Se voc quiser limpar esse form(cadastro de produtos) j aberto ou fazer qualquer outra coisa nele, voc vai ter que fazer isso manualmente usando a instncia dele, no com essa nova instncia que est sendo criada.

_______________________________________________________________________________________________

Se a alma ou esprito so imateriais, como eles fazem para se localizar quando o corpo est em movimento?



#489525 - 17/07/2019 11:40:02

TRTNCG
CAMPINA GRANDE
Cadast. em:Fevereiro/2004


Ento consegui encontrar o que estava acontecendo. Ao chamar o form PRODUTOS estava criando uma nova instncia tipo:

Dim fprodutos as new produtos
fprodutos.showdialog()

da criava outra instncia, chamei o form produtos com o produtos.ShowDialog() e funcionou de boa.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por TRTNCG em 18/07/2019 13:06:58