Principales respuestas
Problemas con un TextBox

Pregunta
-
Buen día estoy programando y me surge una situación, ya he realizado un programa como el que estoy volviendo a realizar y no habia tenido problemas, desde un windows form abro otro formulario para una busqueda y al momento de encontrar el resultado le doy doble click para que me regrese los datos encontrados al primer form. Lo hago a través de una funcion que me deberia de llenar los TextBox seleccionados, ya incluso copie el código de mi programa anterior pero no funciona, los TextBox se quedan en blanco, para comprobar que el segundo formulario si me daba los datos, puse un mensaje en el primer formulario para que me mandara una ventana con los datos y si van completos, el problema es que cuando utilizo el TextBox1.Text = param1 no lo actualiza, les adjunto los dos codigos involucrados y que me ayuden a ver si algo estoy pasando por alto.
Este es el código que me envia los datos del formulario 2 al 1
Private Sub dataGridView1_CellDoubleClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick Dim row As DataGridViewRow = DataGridView1.Rows(e.RowIndex) nuevaorden.LlenarOrden(CStr(row.Cells("CLAVE").Value), CStr(row.Cells("NOMBRE").Value), CStr(row.Cells("CAMPLIB3").Value), CStr(row.Cells("CAMPLIB2").Value), CStr(row.Cells("STATUS").Value)) Me.Close() End Sub
Este es el código del formulario 1 que deberia actualizar los TextBox
Public Sub LlenarOrden(param1, param2, param3, param4, param5) TextBox3.Text = param1 TextBox4.Text = param2 TextBox2.Text = param3 TextBox1.Text = param4 semaforo.Image = Image.FromFile("C:\RED\ORDENES\" & param5 & ".png") End Sub
agradezco su ayuda
DESDE EL FORO DE MSDN
Respuestas
-
Hola FedericoHH,
Que es eso de nuevaOrden.LlenarOrden.... ? Como lo declaras?
Puedes hacer esto :
Private Sub DataGridView1_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) _ Handles DataGridView1.CellDoubleClick Dim row As DataGridViewRow = DataGridView1.Rows(e.RowIndex) 'Obtengo la instancia del padre Dim f1 As Form1 = Application.OpenForms.OfType(Of Form1).SingleOrDefault() If f1 IsNot Nothing Then f1.LlenarOrden(CStr(row.Cells("CLAVE").Value), CStr(row.Cells("NOMBRE").Value), CStr(row.Cells("CAMPLIB3").Value), CStr(row.Cells("CAMPLIB2").Value), CStr(row.Cells("STATUS").Value)) End If Me.Close() End Sub
Con esto obtienes la instancia actual del Form1 que abrió al Form2 y accedes a su método.
Saludos.
JC NaupaCrispín
Lima - Perú
La magia no existe, la programación SI- Marcado como respuesta FedericoHH viernes, 24 de junio de 2016 22:39
Todas las respuestas
-
Y si pruebas lo siguiente:
Formulario en el que esta el Grid
Dato1 = DataGridView1.CurrentRow.Cells(0).EditedFormattedV alue.ToString Dato2 = DataGridView1.CurrentRow.Cells(1).EditedFormattedV alue.ToString Dato3 = DataGridView1.CurrentRow.Cells(2).EditedFormattedV alue.ToString
Formulario donde estan los Text
TextBox1.Text = Dato1 TextBox2.Text = Dato2 TextBox3.Text = Dato3
Solo creas un modulo y defines las variables publicas
Dim Dato1, Dato2, Dato3 As String
Jhonatan Plata http://kayprogramacion.blogspot.com/
-
-
Hola FedericoHH,
Que es eso de nuevaOrden.LlenarOrden.... ? Como lo declaras?
Puedes hacer esto :
Private Sub DataGridView1_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) _ Handles DataGridView1.CellDoubleClick Dim row As DataGridViewRow = DataGridView1.Rows(e.RowIndex) 'Obtengo la instancia del padre Dim f1 As Form1 = Application.OpenForms.OfType(Of Form1).SingleOrDefault() If f1 IsNot Nothing Then f1.LlenarOrden(CStr(row.Cells("CLAVE").Value), CStr(row.Cells("NOMBRE").Value), CStr(row.Cells("CAMPLIB3").Value), CStr(row.Cells("CAMPLIB2").Value), CStr(row.Cells("STATUS").Value)) End If Me.Close() End Sub
Con esto obtienes la instancia actual del Form1 que abrió al Form2 y accedes a su método.
Saludos.
JC NaupaCrispín
Lima - Perú
La magia no existe, la programación SI- Marcado como respuesta FedericoHH viernes, 24 de junio de 2016 22:39
-