none
Utilizar atributos de un form en otro form RRS feed

  • Pregunta

  • Estoy haciendo un proyecto, y necesito utilizar dos arreglos, cargados y declarados en un form inicial(como atributos), para trabajarlos de mejor manera en un form distinto. Utilice el modificador de acceso public en estos atributos, pensando que podría utilizarlos en el otro form. Mi pregunta es: ¿Cómo puedo trabajar con los datos de un atributo de un form en otro form?Muchas Gracias
    domingo, 5 de junio de 2016 17:36

Todas las respuestas

  • Brian02Oriel,

    En un hilo se trató un tema similar a lo que requieres: pasar datos entre dos formularios, en ese caso se hizo uso de una matriz para pasar los valores de objetos de tipo TextBox entre formularios:

    -----------------------------------------------------------------------------------------------------------------------------------------

    Tienes dos formularios: FormA y FormB, desde FormA requieres pasar el valor de 7 objetos de tipo TextBox a FormB, entonces, lo que propongo es que FormB implemente un constructor que permita recibir los valores enviados desde FormA al momento de crear la instancia, por tanto, en FormA tendrás lo siguiente:

    Private Sub btnAbrirFormB_Click(sender As Object, e As EventArgs)
            'Declaro una matriz que contendrá el valor de los 7 objetos TextBox.
            Dim data As String() = New String() {TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text, TextBox6.Text, TextBox7.Text}
    
            'Paso como argumento la matriz al constructor de la clase FormB
            Dim frmB As New FormB(data)
            frmB.ShowDialog()
    End Sub

    En FormB debes implementar el constructor que permita como parámetro una matriz de tipo string.

    Public Partial Class FormB
    	Inherits Form
    
    	'Declaro una variable de ámbito privado que almacenará los datos envíados desde FormA
            Private datos As String() = New String(6) {}
    
    	Public Sub New()
    		InitializeComponent()
    	End Sub
    
    	'Implemento el constructor en cuya firma define un parámetro de tipo array de string
    	Public Sub New(data As String())
    		Me.New()
    		'Copio el contenido del array a la variable privada datos
    		data.CopyTo(Me.datos, 0)
    	End Sub
    
    	Private Sub FormB_Load(sender As Object, e As EventArgs)
    		'En el evento Load de FormB asigno los valores a los objetos de tipo TextBox
    		TextBox1.Text = Me.datos(0)
    		TextBox2.Text = Me.datos(1)
    		TextBox3.Text = Me.datos(2)
    	End Sub
    End Class

    domingo, 5 de junio de 2016 17:43
  • Si los has marcado como "public", entonces serán accesibles desde otro form como instancaDelForm.NombreDelAtributo.

    El énfasis está en que tienes que anteponer la instancia del form, no basta con poner la clase del form. Por ejemplo si el form que tiene los atributos se llama Form1, para poderlo usar en algún sitio has tenido que poner Form1 frm = new Form1(). Pues bien, esa variable "frm" tienes que guardarla y hacérsela llegar al Form2, para que desde éste puedas hacer miVariable = frm.NombreDelAtributo.

    domingo, 5 de junio de 2016 17:45