none
VB.Net - [Resolvido]Como capturar o resultado de um botão de um form2.showdialog() RRS feed

  • Pergunta

  • Olá a todos.

    Prezados,
    Tenho um form1 que chama o form2.
    Como faço receber o resultado de um botão do form2 ?

    Exemplo:
    1 - Form1

    Sub atualizar()
       form2.ShowDialog()
        
       'seria algo do tipo'
    If form2[botao cancelar foi pressionado] Then Call limparControles() else capaNegocios.atualizaHistorico(objeto) Call limparControles() endif End Sub

          Não sei como pegar o retorno do botão do form2.

     2 -  Exemplo do Form2

        Private Sub btnCancelar_Click(sender As Object, e As EventArgs) Handles btnCancelar.Click
             Me.Close()
        End Sub
    Agradeço a ajuda de todos.

    Atenciosamente,

    JoseBonfim



    • Editado JoseBonfim quarta-feira, 1 de fevereiro de 2017 23:27
    segunda-feira, 30 de janeiro de 2017 23:17

Respostas

  • Olá,

    Eu faria o contrário. O botão do Form2 chamaria um método no Form1 para realizar o que deseja. Para isso basta passar o form1 no momento que estiver instanciando o form2. Assim:

    'Código do Form1
    
    Public Sub limparControles()
       'Seu código
    End Sub
    
    'Chamando o Form2 a partir do Form1:
    
    Dim f2 As New Form2(Me)
    f2.ShowDialog()
    
    
    'Código do Form2:
    
    Dim f1;
    
    Public Sub New(f As Form1)
        InitializeComponent()
        f1 = f
    End Sub
    
    
    Private Sub btnCancelar_Click(sender As Object, e As EventArgs) Handles btnCancelar.Click
        f1.limparControles()
        Me.Close()
    End Sub

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    segunda-feira, 30 de janeiro de 2017 23:56

Todas as Respostas

  • Olá,

    Eu faria o contrário. O botão do Form2 chamaria um método no Form1 para realizar o que deseja. Para isso basta passar o form1 no momento que estiver instanciando o form2. Assim:

    'Código do Form1
    
    Public Sub limparControles()
       'Seu código
    End Sub
    
    'Chamando o Form2 a partir do Form1:
    
    Dim f2 As New Form2(Me)
    f2.ShowDialog()
    
    
    'Código do Form2:
    
    Dim f1;
    
    Public Sub New(f As Form1)
        InitializeComponent()
        f1 = f
    End Sub
    
    
    Private Sub btnCancelar_Click(sender As Object, e As EventArgs) Handles btnCancelar.Click
        f1.limparControles()
        Me.Close()
    End Sub

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    segunda-feira, 30 de janeiro de 2017 23:56
  • André Secco,

    Obrigado pela ajuda.

    Atenciosamente,

    JoseBonfim

    quarta-feira, 1 de fevereiro de 2017 23:27