Jump to content
Fórum Script Brasil
  • 0

[VB-2010] Usar sub em outro form


MCGiorda

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...