Hola,
estoy realizando un programa en el cual un textbox del form principal muestra algunos datos, y lo que quiero hacer es que lo que contiene ese textbox del form principal, se muestre en otro textbox pero de un form secundario, algo que aún no puedo lograr. Me gustaría que me ayudaran, uso .Net Framework. Gracias de antemano.
¿Hay algo que te impida acceder al textbox de forma directa mediante la siguiente forma?
TextBox1.Text = FormularioPrincipal.TextBoxObjetivo.Text
En frm secundario declara una propiedad publica:
Public Property Valor() As String
y en el load:
MiObjeto.text = me.Valor()
En frm principal:
dim frm as new frmsecundario
frm.valor = textbox1.text
frm.show()
Saludos.
Si entiendo lo que queres es que un form que tenga un texto en un textbox cuando abras otro form desde ese formulario aparezca el texto en el formulario secundario?
Si es eso tenes que hacer esto
bueno primero asegurarte que el textbox no este vacio, y despues mandar el texto al otro formulario cuando lo abrís
en el boton que habre el segundo formulario:
Dim Texto as String
Texto = textbox1.text
Dim mfrm as FormSecundario
mfrm = new FormSecundario(Texto) 'Aca estoy pasando el texto como parametro, pero tengo que especificar antes en el formulario secundario sino te va dar error
mfrm.showdialog()
Y en el formulario secundario declaras una variable que se va pasar ese texto
Class FormSecundario
dim texto as String
sub new(xTexto as Texto) ' declara que tiene que recibir una variable de tipo string cuando se cree el nuevo formulario
texto = xtexto 'Asigno el texto que se pasa a la variable en el form que lo puedo usar en cualquier momento
end sub
end class
Suerte
Declara una property como te ha indicado el compañero @Hadess_inf
Solo es necesario que modifiques el código del formulario que contiene el primer TextBox:
Public Class Form1
Public Property TB_text As String
Get
Return Me.TB.Text
End Get
Set(ByVal str As String)
Form2.TB.Text = str
End Set
End Property
Private Sub TB_TextChanged(sender As Object, e As EventArgs) _
Handles TB.TextChanged
Me.TB_text = sender.text
End Sub
Private Shadows Sub Load() Handles MyBase.Load
Me.TB.Text = "Hello World!"
Form2.Show()
End Sub
End Class
La intención es separar un poco los datos, de la UI, siempre hay que tener los buenos hábitos en mente... (aunque esto no sea WPF), pero si lo prefieres diréctamente puedes ahorrarte la propiedad y utilizar el evento OnTextChanged para interactuar con el Textbox secundario:
Public Class Form1
Private Shadows Sub Load() Handles MyBase.Load
Form2.Show()
TB.Text = "Hello World!"
End Sub
Private Sub TB_TextChanged(sender As Object, e As EventArgs) _
Handles TB.TextChanged
Form2.TB.Text = sender.text
End Sub
End Class
Saludos
Y a la inversa?
Obtener desde formPrincipal un dato de un formSecundario
Josino, por favor, no reabras temas antiguos, debes publicar un tema aparte para plantear la duda que tengas.
El procedimiento es el mismo en todas las Classes, declara el miembro con una visibilidad pública para el otro miembro, y entonces podrás acceder a él.
Form2.vb:
Public NotInheritable Class Form2
Friend var As String = "Hello from Form2!"
End Class
Form1.vb:
Public NotInheritable Class Form1
Private Sub Test() Handles MyBase.Load
Dim value As String = Form2.var
End Sub
End Class
Tema cerrado.
Saludos!