Foro de elhacker.net

Programación => .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
  1. Dim Texto as String
  2. Texto = textbox1.text
  3. Dim mfrm as FormSecundario
  4. 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
  5. mfrm.showdialog()
  6.  

Y en el formulario secundario declaras una variable que se va pasar ese texto

Código
  1. Class FormSecundario
  2. dim texto as String
  3.  
  4. sub new(xTexto as Texto) ' declara que tiene que recibir una variable de tipo string cuando se cree el nuevo formulario
  5.  
  6. texto = xtexto 'Asigno el texto que se pasa a la variable en el form que lo puedo usar en cualquier momento
  7. end sub
  8.  
  9. end class
  10.  
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
  1. Public Class Form1
  2.  
  3.    Public Property TB_text As String
  4.        Get
  5.            Return Me.TB.Text
  6.        End Get
  7.        Set(ByVal str As String)
  8.            Form2.TB.Text = str
  9.        End Set
  10.    End Property
  11.  
  12.    Private Sub TB_TextChanged(sender As Object, e As EventArgs) _
  13.    Handles TB.TextChanged
  14.        Me.TB_text = sender.text
  15.    End Sub
  16.  
  17.    Private Shadows Sub Load() Handles MyBase.Load
  18.        Me.TB.Text = "Hello World!"
  19.        Form2.Show()
  20.    End Sub
  21.  
  22. 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
  1. Public Class Form1
  2.  
  3.    Private Shadows Sub Load() Handles MyBase.Load
  4.        Form2.Show()
  5.        TB.Text = "Hello World!"
  6.    End Sub
  7.  
  8.    Private Sub TB_TextChanged(sender As Object, e As EventArgs) _
  9.    Handles TB.TextChanged
  10.        Form2.TB.Text = sender.text
  11.    End Sub
  12.  
  13. 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
  1. Public NotInheritable Class Form2
  2.  
  3.    Friend var As String = "Hello from Form2!"
  4.  
  5. End Class

Form1.vb:
Código
  1. Public NotInheritable Class Form1
  2.  
  3.    Private Sub Test() Handles MyBase.Load
  4.  
  5.        Dim value As String = Form2.var
  6.  
  7.    End Sub
  8.  
  9. End Class

Tema cerrado.

Saludos!