Ir para conteúdo
Fórum Script Brasil
  • 0

Parametros


kuroi

Pergunta

se eu tenho o evento:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    End Sub

se eu quiser chamar esse evento de outra sub, o q eu tenho q passar para os parametros sender e e? e porque?

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Para o "sender" você deverá passar o objeto remetente (do Inglês, "sender") e para "e" um objeto que contém os argumentos de um evento.

O porquê disso é que uma rotina deste tipo (que está associada a um evento) pode ser utilizada por mais de um controle. Se você tivesse dois botões (Button1 e Button2), poderia utilizar este mesma rotina para controle dos eventos Click de ambos (bastando incluir o evento Button2.Click após o Button1.Click do Handles):

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click

Tanto se o botão 1 (Button1) ou o botão 2 (Button2) for clicado, a rotina chamada será a mesma acima. Como seria possível diferenciar se foi o botão 1 ou o botão 2 que a chamou? Aí entre em cena o "sender", que ou se referirá ao botão 1 ou ao botão 2.

De qualquer maneira, se sua intenção é apenas efetuar um clique em um botão, basta chamar o método PerformClick() do mesmo:

Button1.PerformClick()

Certo? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

sim, mas isso q eu disse no outro post tb é verdadeiro.

entendi, então no clique de um botao, posso chamar automaticamente varias subs.

estava deduzindo isso com base no q você disse nesse e no outro tópico.

porque eu tentei isso:

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Button1.Text = "ffsd"
    End Sub
    Private Sub Button1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox2.Text = TextBox2.Text & "X"
    End Sub

e funcionou.

ele alterou tanto o text do button1 quanto do textbox2 (veja tb q eu tirei o button1.gotocus da funcao Button1_GotFocus)

Link para o comentário
Compartilhar em outros sites

  • 0

Private Sub A(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show("A")
    End Sub

    Private Sub B(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show("B")
    End Sub

    Private Sub C(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show("C")
    End Sub

Como posso especificar a ordem de chamadas das Sub's?? (Já que o evento 'click' chama três procedimentos)

Falows!

Link para o comentário
Compartilhar em outros sites

  • 0

Neste caso você deveria associar apenas a primeira sub ao evento e nela chamar as outras duas explicitamente:

   Private Sub A(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       MessageBox.Show("A")
       B(sender, e)
       C(sender, e)
   End Sub

   Private Sub B(ByVal sender As System.Object, ByVal e As System.EventArgs)
       MessageBox.Show("B")
   End Sub

   Private Sub C(ByVal sender As System.Object, ByVal e As System.EventArgs)
       MessageBox.Show("C")
   End Sub

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...