DOIS FORMS QUE NAO SE FALAM !

MARCOS 29/11/2010 13:23:13
#358393
Bom dia, Colegas!
De fato, existem vários artigos na WEB, explicando como abrir formulários.
No entanto, estou com dificuldade de usar um modo de abrir formulários
de um modo , que eu possa a qualquer momento fazer coisas como:
Executar uma função que esta em outro Form, ou mesmo transferir dados
de um Form para outro.

Imagine, uma situação super comum: (VB.NET)

Eu tenho um Formulário de cadastro de Cliente (FrmCliente). Preciso abrir um formulário
a partir deste com uma pequena tela para o usuário digitar o que deseja pesquisar (FrmPesquisar).
O usuário digita numa caixa de texto o que deseja e clica em Confirmar
Agora preciso que ao clicar no Confirmar, meu código execute uma função (PesquisaCliente)
que esta no formulário FrmCliente.Repare que não irei abrir novamente o FrmCliente.Ele já esta
aberto.Sendo assim..........

1.) Como deve ficar o código, para abrir o FrmPesquisar ????

2.) Como fica o código, que devo colocar no botão Confirmar de FrmPesquisar,me permite Capturar
o que foi digitado no Form FrmPesquisar e executar a função PesquisarCliente que esta em FrmCliente,
para preencher os campos de FrmCliente????

Algum colega pode esclarecer????
MARCOS 30/11/2010 10:42:58
#358476
Faço um apelo aos colegas, que trabalham com VB.NET!
Alguém deve saber como fazer isto !!!!!

é uma situação comum de mais......que surge a todo momento ao fazer-mos um cadastro.

Algum colega pode esclarecer????????????????

JONATHANSTECKER 30/11/2010 11:05:48
#358478

Veja esse exemplo... A idéia é criar classes para conversar com os Formulário.
Nesse exemplo criei uma variável publica e a coloquei em um módulo, mas a classe pode ser instanciada através de parâmetros.
MARCOS 30/11/2010 14:31:55
#358506
JONA, obrigado por responder. Mas, o exemplo que deixou explica com transferir uma
informação de um Form para outro ( Usando propiedades). O problema é que preciso
executar um método ( PesquisarCliente ) que esta em outro formulário.Ou seja:

1.) Eu tenho dois Formulários: Form1 e Form2

2.) Em Form1 , eu tenho um método chamado [ô]PesquisarCliente[ô]

2. A partir de Form1 , tenho um botão (BtnAbrirForm2) que exibe Form2

3.) Em Form2 tenho uma caixa de texto (TxtCliente) e um Botão (BtnPesquisar)

4.) Quando digitar em Form2, o cliente a ser pesquisado e clicar no botão (BtnPesquisar) tenho de executar o método [ô]PesquisarCliente[ô],
informando o nome do cliente a ser pesquisado.


A questão é simples:

Como executar o método [ô]PesquisarCliente[Ô] , do Form1, a partir do Form2?

Obs: O form1, que abriu form2 tem estará aberto obviamente.


Socorro, não acredito que ninguém tenha passado por este problema!!!


JONATHANSTECKER 30/11/2010 14:57:51
#358508
Citação:

Como executar o método [ô]PesquisarCliente[Ô] , do Form1, a partir do Form2?



Desde que o método esteja definido como Público não vejo o que estaria impossibilitando a chamada [Ô]Form1.PesquisarCliente()[Ô]

Mas como passei no modelo... Eu colocaria um parâmetro no método PesquisarCliente(ByVal TextoPesquisa As String), e chamaria o form2 como ShowDialog.
Ao fechar o Form2, caso o botão pressionado tenha sido o de efetuar a pesquisa, execute a pesquisa.
RODRIGOFERRO 30/11/2010 15:08:15
#358510
Resposta escolhida
Exatamente isso mesmo, é so torna-lo Publico e poderas executar normalmente.

MARCOS 30/11/2010 16:00:21
#358514
Pessoal,
Eu esqueci de mencionar algo importantissímo!!!!

Executar o método, eu consigo . ( Eu já tinha colocado como público ). Mas......
Por algum motivo estranho, depois que o método é executado e os dados retornados na função
Nenhum das caixas de texto do Form1 exibe os valores retornados do Dataset.

Obs: Eu sei que o método esta funcionando,pois não tem mensagem de erro e também, porque se eu mando um Msgbox exibir o dados retornados na
função (PesquisarCliente) ele exibe.

DETALHE:

Se eu executo o mesmo método, a partir do própio formulário (Form1) tudo funciona ! As caixas de texto são atualizadas,etc...
Mas, se executo o mesmo método a partir de Form2, ele é executado , mas as caixas de texto de Form1, não exibem o valor retornado pela função.
O que eu acho, é que deve ter o modo certo, de se mandar abrir o Form2, e provavelmente um modo certo de executar o método do Form1, que já esta
aberto.

O que peço aos colegas é simples:

1.) Preciso saber como chamar Form2 , a partir de Form1
2.) Depois, executar o um método de Form1 (PesquisarCliente), a partir de Form2


RODRIGOFERRO 30/11/2010 21:44:25
#358528
ta, a questao é, porque o metodo precisa estar em um FORM, tu pode criar uma classe para isso.

passa sua função ai que eu tento montar algo aqui.
Tópico encerrado , respostas não são mais permitidas