none
pasar o mostrar lo mismo que tengo en un textbox en un formulario para otro RRS feed

  • Pregunta

  • les cuento... tengo una DataGridView, la cual selecciono el registro que quiero que se muestre en los textbox, pero lo que quiero es pasar esa información, osea copiar de esos textbox a otro formulario que tiene  la misma cantidad de textbox. osea tener un button donde llame al formulario donde quiero que copie la información de los texbox que contiene información por la seleccion del registro que elegí en el DataGridView. espero me haya explicado bien. gracias y espero me ayuden.
    viernes, 3 de junio de 2016 3:44

Respuestas

  • Como recorrer las filas de un DataGridView,

    Vamos a aclarar el panorama: 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

    Como vez, es bastante simple, si tienes alguna duda puedes consultarlo.


    domingo, 5 de junio de 2016 17:27
  • Hola:
    En un proyecto con 2 Form el primero contiene 2 TextBox y 1 Button y el segundo 2 TextBox, copia y pega el siguiente codigo
    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Using loForm As New Form2
                loForm.Texto1 = Me.TextBox1.Text
                loForm.Texto2 = Me.TextBox2.Text
                loForm.ShowDialog()
            End Using
        End Sub
    End Class
    Public Class Form2
        Public Property Texto1 As String
        Public Property Texto2 As String

        Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
            Me.TextBox1.Text = Texto1
            Me.TextBox2.Text = Texto2
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos
    lunes, 6 de junio de 2016 5:27

Todas las respuestas

  • Hola Como recorrer las filas de un DataGridView,

    Los dos formularios están abiertos al mismo tiempo? O uno es hijo del otro (cuando lo muestras mediante el ShowDialog()).

    Si es el segundo puedes usar el constructor New(parametro) y envías la instancia que se ejecuta del padre.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    viernes, 3 de junio de 2016 4:16
  • solo esta un formulario abierto, pero en cuanto haga clic en el boton se abra el otro formulario y copie en los textbox sin cerrar el primero
    viernes, 3 de junio de 2016 12:56
  • Como recorrer las filas de un DataGridView,

    ¿Cuántos objetos de tipo TextBox requieres pasar? Una opción es pasar esos valores a través del constructor del formulario invocado, te muestro un ejemplo donde transfiero el valor de dos objetos de tipo TextBox: txtNombre y txtApellido:

    Lo primero es implementar un nuevo constuctor en el formulario invocado que permita recibir los valores del formulario llamador.

    Public Class FormB
    
        'Declaro las variables necesarias para obtener los datos desde el formulario llamador
        Private nombre As String = String.Empty
        Private apellido As String = String.Empty
    
        Public Sub New()
            InitializeComponent()
        End Sub
    
        'Implemento un nuevo constructor que recibe como parámetros los valores del formulario llamador
        Public Sub New(nombre As String, apellido As String)
            Me.New()
    
            'Asigno a las variables de ámbito privado el valor que recibe el constuctor
            Me.nombre = nombre
            Me.apellido = apellido
        End Sub
    
        Private Sub FormB_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'Asigno el valor de las variables privadas a los controles respectivos
            txtNombre.Text = Me.nombre
            txtApellido.Text = Me.apellido
        End Sub
    End Class

    Ahora lo único que queda es invocar al formulario pasando los valores como argumentos del constructor:

    Dim form As New FormB(txtNombre.Text, txtApellido.Text)
    form.ShowDialog()

    viernes, 3 de junio de 2016 13:54
  • no entendi muy bien, tengo que crear un nuevo formulario verdad? donde sera agregado lo que esta en FormB. no entiendo es donde colocar eso:

    Dim form As New FormB(txtNombre.Text, txtApellido.Text)
    form.ShowDialog()

    en el formulario A tengo 7 textbox a los cuales de esos 7 textbox pasar su información a otro formulario con la misma cantidad de textbox

    domingo, 5 de junio de 2016 16:42
  • Como recorrer las filas de un DataGridView,

    Vamos a aclarar el panorama: 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

    Como vez, es bastante simple, si tienes alguna duda puedes consultarlo.


    domingo, 5 de junio de 2016 17:27
  • exactamente eso era lo que buscaba, mil gracias!!!!
    domingo, 5 de junio de 2016 17:42
  • tengo 2 formulario

    formulario 1 contiene 2 textbox y formulario 2 contiene la misma cantidad de textbox, como haría para pasar esos datos de formulario 2 a formulario 1 ?? teniendo en cuenta que ambos formularios están abiertos

    domingo, 5 de junio de 2016 22:14
  • Hola.

    Probaste el evento TextChanged:

     Private Sub txt1y2_TextChanged(sender As TextBox, e As EventArgs) Handles txt1.TextChanged, txt2.textChanged
    
        'Pasas losdatos al form1
        Form1.TextBox1.text = Me.txt1.text
        Form2.TextBox2.text = Me.txt2.text
    
        'Si queres que se pase el texto del textbox que cambió
        Form1.TextBox1.text = sender.text
    
        End Sub
    Espero haya sido de ayuda


    Saludos. Atentamente Pablo Fac.

    domingo, 5 de junio de 2016 23:04
  • Hola:
    En un proyecto con 2 Form el primero contiene 2 TextBox y 1 Button y el segundo 2 TextBox, copia y pega el siguiente codigo
    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Using loForm As New Form2
                loForm.Texto1 = Me.TextBox1.Text
                loForm.Texto2 = Me.TextBox2.Text
                loForm.ShowDialog()
            End Using
        End Sub
    End Class
    Public Class Form2
        Public Property Texto1 As String
        Public Property Texto2 As String

        Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
            Me.TextBox1.Text = Texto1
            Me.TextBox2.Text = Texto2
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos
    lunes, 6 de junio de 2016 5:27
  • claro amigo eso lo entiendo, pero en el formulario A tengo un picturebox que muestra las imagenes guardada en mi base de datos segun sea el registro que haya buscado, pero quiero que aparte de copiar los textbox que me copia el picturebox que contiene la imagen al formulario B con sus textbox
    lunes, 6 de junio de 2016 18:41