• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

HolyMurderer

[VB.NET 2k5] Ajuda com Evento TextChanged em 2 textbox's em 2 forms

6 mensagens neste tópico

Boas!

Estou a fazer um simples programa, que tem um Form1 que é um MDI Parent, mas o problema real é que o Form 1 contém 2 Forms, cada um com a sua textbox, que é suposto ficarem sincronizadas em texto, ou seja, enquanto escrevo numa, na outra aparece o mesmo. Tudo está a funcionar bem, excepto que os textos não ficam sincronizados, o que escrevo numa textbox, nao aparece na outra...

Estou a fazer o load dos 2 forms (Form2 e Form3) no Form1.Load da seguinte forma:

Public Class Form1

    Inherits System.Windows.Forms.Form
    Dim WithEvents Formulario1 As Form2
    Dim WithEvents Formulario2 As Form3


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Formulario1 = New Form2
        Formulario1.MdiParent = Me
        Formulario1.Show()
        Formulario2 = New Form3
        Formulario2.MdiParent = Me
        Formulario2.Show()

    End Sub

End Class

Tanto o Form2 como o Form3 têm apenas uma textbox com a Property Dock em Fill, que coloquei no evento TextChanged o seguinte:

Form2:  Form3.TextBox1.Text = Me.TextBox1.Text
Form3:  Form2.TextBox1.Text = Me.TextBox1.Text

Mas nem o VB dá erro, nem no debug, nem o texto é sincrono nas 2 textboxes...

Alguma ajuda era bem vinda por favor. Muito obrigado pelo vosso tempo :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta usar Formulario2.textbox1.text em vez de Form1.textbox1.text ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta usar Formulario2.textbox1.text em vez de Form1.textbox1.text ...

obrigado pela tua resposta.

Para isso, fui obrigado a declarar novamente as variáveis dos formularios, dentro de cada form*.vb e obtive uma exception: System.StackOverflowException :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!!

Aki fica a resposta à tua questão:

Código da MDIFORM

Public Class MDIFORM
    'Tem um Toolstripmenu k chama as 2 forms
    Private Sub ChamaForms(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NOVAFORMToolStripMenuItem.Click
        Dim f1 As Form1 = New Form1
        Dim f2 As Form2 = New Form2
        f1.MdiParent = Me
        f1.FormSincronizada = f2
        f2.FormSincronizada = f1
        f2.MdiParent = Me
        f1.Show()
        f2.Show()
    End Sub
End Class

Código da MDICHILD  Form 1


Public Class Form1
   'Propriedade que nos permite aceder ao texto da textbox
    Public Property Texto() As String
        Get
            Return TextBox1.Text

        End Get
        Set(ByVal value As String)
            TextBox1.Text = value
        End Set
    End Property


    Private f As Form2
    'Propriedade que nos permite saber kual a form sincronizada com a nossa
    Public Property FormSincronizada() As Form2
        Get
            Return f
        End Get
        Set(ByVal value As Form2)
            f = value
        End Set
    End Property

   'função k permite sincronizar o text apos o textchanged da textbox da form activa
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

        f.Texto = TextBox1.Text

    End Sub
End Class

Código da MDICHILD  Form 2


Public Class Form2
   'Propriedade que nos permite aceder ao texto da textbox
    Public Property Texto() As String
        Get
            Return TextBox1.Text

        End Get
        Set(ByVal value As String)
            TextBox1.Text = value
        End Set
    End Property


    Private f As Form1
    'Propriedade que nos permite saber kual a form sincronizada com a nossa
    Public Property FormSincronizada() As Form1
        Get
            Return f
        End Get
        Set(ByVal value As Form1)
            f = value
        End Set
    End Property

   'função k permite sincronizar o text apos o textchanged da textbox da form activa
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

        f.Texto = TextBox1.Text

    End Sub
End Class

Espero k de para resolver... s n der da uma apitadela!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela resposta, SoulOnFire.

Tenho que testar, não tenho tido tempo. Mal teste, digo logo. Não é 100% o que procuro, mas pode ser que tire algumas ideias a partir daí.

Cumprimentos e mais uma vez obrigado :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora