Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/08/2006, 02:29
bar1
 
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 20 años, 2 meses
Puntos: 0
Pregunta cambiar valor textbox de un formulario a otro

Hola amigos! me he visto obligado a recorrer a vuestra ayuda tras la imposibilidad de avanzar en la elaboración de mi proyecto vb .net 2005

Lo que pretendo es simplemente mostrar el valor de una cadena que recojo del DataGridView (enlazado a un DataView) de un formulario (Form2) para mostrarlo en un control tipo TextBox de otro formulario Form1.

El siguiente código no da ningun error pero me impide leer la maldita cadena

Form 1 - frmNuevoPedido
Código:
  '***ABRIMOS FORMULARIO FORM1****************************
    Public Sub openForm(ByVal id As String, ByVal esUPD As Boolean)
        Call cargarDatos()
        Me.ShowDialog()
    End Sub
    (...)
    '***LLAMAMOS A FORM2 PARA LEER DATOS DEL DATASET ************
    Private Sub CmdBuscarProveedor_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CmdBuscarProveedor.Click
        Dim ofrmListaProveedores As frmListaProveedores = New frmListaProveedores
        ofrmListaProveedores.openForm()
    End Sub
    (...)
    '***ASIGNAMOS VALOR DESPUES DE RECIBIR EL ÍNDICE POR REFERENCIA DESDE FORM2 ****************************    
Public Sub CogerNombreProveedor(ByVal idpro As String)
        Dim oDataView As New DataView(oDataSet.Tables("Proveedores"), "ID_Proveedor = '" & idpro & "'", Nothing, DataViewRowState.CurrentRows)
        Dim oDataRowView As DataRowView
        For Each oDataRowView In oDataView
            'la siguiente instrucción no la ejecuta! POR QUÉ?¿?
            'es como si el TxtProveedor estuviera bloqueado
           'si aquí hago un MsgBox(oDataRowView("Nombre").ToString.ToUpper) el valor sale perfectamente por pantalla pero la siguiente instrucción no lo asigna a TextProveedor
            Me.TxtProveedor.Text = oDataRowView("Nombre").ToString.ToUpper            
            'Me.TxtProveedor.Text = "ENTRAAAAAAAAAAAAAAAAAAAAAAAAAAA"
        Next
    End Sub 
Form 2 - frmListaProveedores
Código:
 '***ABRIMOS FORMULARIO FORM2****************************
    Public Sub openForm()
        Call InitializeDataGridView()     'los datos se muestran correctamente
        Me.ShowDialog()
    End Sub
    (...)
    '***RECOGEMOS ÍNDICE DE LA FILA Y LO PASAMOS POR REFERENCIA A OTRO PROCEDIMIENTO QUE ES LEÍDO POR FORM1****************************    
Private Sub DGV_ListaProveedores_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV_ListaProveedores.CellDoubleClick
        If Not (Me.DGV_Pacients.Rows(e.RowIndex).Cells("ID_Proveedor").Value Is Nothing) Then Call leerNombreProveedor(Me.DGV_Pacients.Rows(e.RowIndex).Cells("ID_Proveedor").Value)
    End Sub
    (...)
   '***SUBRUTIMA QUE ENVÍA EL VALOR PARA SER ASIGNADO AL CONTROL DESEADO DESDE MISMO FORM1****************************
    Private Sub leerNombreProveedor(ByVal id As String)
        Call frmNuevoPedido.CogerNombreProveedor(id)    'llamo a procedimiento de Form1 para leer valor
        Me.Close()
    End Sub 
Como abreis podido ver se trata de 2 formularios Modales (ShowDialog()). ¿Eso puede tener algo que ver?

Agradezco de antemano cualquier idea

Última edición por bar1; 24/08/2006 a las 02:54 Razón: falta detalle