É POSSÍVEL PASSAR DADOS PARA OUTRO FORM?

MARCOS 31/05/2016 10:11:06
#462797
Bom dia,colegas!
Esta é uma situação simples,mas bem específica.
Eu tenho um projeto WinForm .NET (VB.NET).
Tenho um Form (Form1), que tem um botão,que ao ser clicado,
Abre um outro Form (Form2).

O problema:

Tenho que [Ô]A partir[Ô] do Form1, executar um método no Form2. Mas tem que ser
depois que o Form2,já esta aberto na frente do Form1).Em tempo de execução

é possível???

Agradeço qualquer ajuda.
KURTGU 31/05/2016 10:18:15
#462800
Procure a Propriedade Shown ela e executada quando o form literalmente terminou de carregar,

Exemplo: Form1 Botao Abre form2 --------- Form2 no Shown Coloque o que voce precisa
JABA 31/05/2016 12:33:31
#462805
Resposta escolhida
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Form2.Show()
MsgBox(Form.ActiveForm.Name)
End Sub

MARCOS 31/05/2016 13:59:06
#462809
Colega,Kurtug.
Eu preciso executar um metodo do Form2, [Ô]Depois[Ô] que já esta aberto na tela do computador

Colega Jaba,
Desculpe,mas nao entendi como posso com esta sintaxe,executar um método do Form2, a partir do Form1.
Pode dar um exemplo???
JABA 31/05/2016 14:10:09
#462810
Você disse que o Form2 teria que estar sobre o Form1, então é só pegar o form ativo e executar o método. Ex: Form.ActiveForm.SeuMetodo.
Se você quer executar um método dele sem que ele precise estar ativo na tela, então é só chamar diretamente Form2.SeuMetodo
KERPLUNK 31/05/2016 18:57:16
#462825
O que o método faz?
PLUGSOFTSM 31/05/2016 20:46:35
#462830
Por que vc não faz o seguinte

No form1 crie o procedimento desejado como público

exemplo
public sub MinhaFuncao
Seu código aqui
End Sub

No evento desejado no form2 execute a sub do form1
Por exemplo, no evento show do form2 execute a seguinte linha

Form1.MinhaFuncao

Se precisar de mais detalhes, poste um exemplo do que vc precisa
MARCOS 02/06/2016 09:56:22
#462908
Pessoal,me expressei mal
Vou tentar ser mais claro e objetivo:

O que preciso é que meu Form principal (Form1), abra um outro form pequeno na frente dele (Form2).
Depois um método no form1,ao ser executado deverá enviar ao Form2 (Já aberto), mensagens que deverão ser exibidas no Form2.
Ou seja, o Form2, é uma tela na frente do Form1, que fica exibindo mensagens ao usuário sobre o andamento do que esta ocorrendo
no método do Form1.

Obs: é claro, que eu poderia exibir estas mensagens ao usuário,num Label , no mesmo Form1. Mas,não teria o efeito que preciso.

O problema:

Fazer o Form1 Abrir o Form2 e executar um método que exiba uma mensagem é tranquilo:

Dim FFrm2 As New Form2
FFrm2.NomedoMetodo

Mas,ao fazer isto o programa abre o Form2, executa o método exibindo a mensagem num Label do Form2 e [Ô]Para[Ô].
Ou seja, o método do Form1 ,que abriu o Form2, fica esperando eu fechar o Form2, para continuar o fluxo de execução
do restante do método.Eu preciso que ele,abra o Form2, execute o método do 2 e [Ô]Continue[Ô] o fluxo.E de vez em quando
com o Form2 [Ô]ainda[Ô] aberto fique executando as veses o método do Form2.


Obs: Se eu usar o ShowDialog, para poder continuar o fluxo no Form1, Vou precisar que o usuário feche na mão o Form2.

Se algum colega,puder sugerir algo,fico grato.....
JABA 02/06/2016 12:47:56
#462922
Fiz aqui exibindo números aleatórios.
MARCOS 03/06/2016 13:53:59
#463001
Jaba,Muito obrigado!
Exemplo simples e objetivo!

O que acontece,é que eu já fazia isto no VB 6. Mas, no .NET eu imaginei que como tudo é objeto e tem de ser
instanciado, toda vez que for usar. Achei que teria de instanciar [Ô]De novo[Ô], se fosse precisar mais tarde no código.
Tópico encerrado , respostas não são mais permitidas