Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Juancho25 en 6 Noviembre 2013, 03:30 AM

Título: Cómo obtener datos de un form principal a uno secundario en .NET
Publicado por: Juancho25 en 6 Noviembre 2013, 03:30 AM
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.
Título: Re: Cómo obtener datos de un form principal a uno secundario en .NET
Publicado por: El Benjo en 7 Noviembre 2013, 02:05 AM
¿Hay algo que te impida acceder al textbox de forma directa mediante la siguiente forma?

TextBox1.Text = FormularioPrincipal.TextBoxObjetivo.Text
Título: Re: Cómo obtener datos de un form principal a uno secundario en .NET
Publicado por: Hadess_inf en 7 Noviembre 2013, 20:34 PM
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.
Título: Re: Cómo obtener datos de un form principal a uno secundario en .NET
Publicado por: yasser.17 en 10 Noviembre 2013, 06:18 AM
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:
Código (vbnet) [Seleccionar]

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

Código (vbnet) [Seleccionar]

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
Título: Re: Cómo obtener datos de un form principal a uno secundario en .NET
Publicado por: Eleкtro en 10 Noviembre 2013, 19:21 PM
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:

Código (vbnet) [Seleccionar]
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:

Código (vbnet) [Seleccionar]
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
Título: Re: Cómo obtener datos de un form principal a uno secundario en .NET
Publicado por: josprou en 19 Mayo 2015, 20:23 PM
Y a la inversa?

Obtener desde formPrincipal un dato de un formSecundario
Título: Re: Cómo obtener datos de un form principal a uno secundario en .NET
Publicado por: Eleкtro en 19 Mayo 2015, 20:39 PM
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:
Código (vbnet,3) [Seleccionar]
Public NotInheritable Class Form2

   Friend var As String = "Hello from Form2!"

End Class


Form1.vb:
Código (vbnet) [Seleccionar]
Public NotInheritable Class Form1

   Private Sub Test() Handles MyBase.Load

       Dim value As String = Form2.var

   End Sub

End Class


Tema cerrado.

Saludos!