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

[VB-2010] Usar sub em outro form


MCGiorda

Pergunta

Boa noite!

Eu sou novato na área de programação, portanto minha dúvida pode ser meio boba.

Eu criei no Form1 um botão chamado BTest e um textbox chamado TBTest

Ai eu criei um sub público voltado ao BTest.

Public Class Form1

  Private Sub BForm2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BForm2.Click
    Form2.Show()
    Me.Close()
  End Sub

  Public Sub BTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTest.Click
    TBTest.Text = "BTest Worked!"
  End Sub
End Class
OBS: A sub BForm2_click é só para acessar o Form2. Agora no form2 eu criei o mesmo botão e textbox com mesmos nomes e criei um pv sub voltado ao BTest chamando o sub publico BTest_Click do form1 ai o código:
Public Class Form2

  Private Sub BTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTest.Click
    Call Form1.BTest_Click(sender, e)
  End Sub
End Class

No form 1 a sub funciona, mais no 2 não...

O que está errado?

Agradeço desde já.

Grato!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Boa noite!

Eu sou novato na área de programação, portanto minha dúvida pode ser meio boba.

Eu criei no Form1 um botão chamado BTest e um textbox chamado TBTest

Ai eu criei um sub público voltado ao BTest.

Public Class Form1

  Private Sub BForm2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BForm2.Click
    Form2.Show()
    Me.Close()
  End Sub

  Public Sub BTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTest.Click
    TBTest.Text = "BTest Worked!"
  End Sub
End Class
OBS: A sub BForm2_click é só para acessar o Form2. Agora no form2 eu criei o mesmo botão e textbox com mesmos nomes e criei um pv sub voltado ao BTest chamando o sub publico BTest_Click do form1 ai o código:
Public Class Form2

  Private Sub BTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTest.Click
    Call Form1.BTest_Click(sender, e)
  End Sub
End Class

No form 1 a sub funciona, mais no 2 não...

O que está errado?

Agradeço desde já.

Grato!

Oi MC, bom dia!

Para você chamar uma sub do form A no form B basta fazer o seguinte:

No formB:

formA.nomedasub()

é isso que você precisa fazer ??

Link para o comentário
Compartilhar em outros sites

  • 0

é, mas se s sub BTest_Click esta no Form1, o textbox TBTest q sera alterado sera o do Form1 e não o do Form2.

sendo assim, melhor fazer uma sub q receba como parametro o textbox a ser alterado. ou q você pegue o TBTest do Parent do sender, acho q deve dar assim tb.

Link para o comentário
Compartilhar em outros sites

  • 0

hum... tente assim:

Public Class Form1

  Private Sub BForm2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BForm2.Click
    Form2.Show()
    Me.Close()
  End Sub

  Private Sub BTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTest.Click
    Clique(TBTest)
  End Sub

  Public Sub Clique(ByRef text_a_alterar As TextBox)
     text_a_alterar.Text = "BTest Worked!"
  End Sub
End Class[/code]
[code]Public Class Form2

  Private Sub BTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTest.Click
    Call Form1.Clique(TBTest)
  End Sub
End Class

Link para o comentário
Compartilhar em outros sites

  • 0

A forma mais correta de fazer isso é usando Properties.

Form1

Dim texto As String = "Estou no Form1"

Public Property proTexto As String
    Get 
         Return texto
    End Get

    Set (value As String)
        texto = value
    End Set

End Property

Private Sub BTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTest.Click
    TBTest.Text = texto
End Sub
Form2:
Dim frmForm1 As New Form1()

Private Sub BTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTest.Click
    frmForm1.proTexto = "Alterado o texto através do Form2"
 End Sub

Assim, ao clicar no botão BTest do Form2 e depois no BTest do Form1, a mensagem "Alterado o texto através do Form2" será exibida.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...