none
Asignar un valor a un campo de un formulario instanciado desde otro fromulario RRS feed

  • Pregunta

  • Tengo Form1 y lo abro asi desde frmMenu:

         using cpfrm as new Form1

              cpFrm.showdialog()

         end using

    Luego abro un Form3 desde el fromulario instanciado cpFrm(Form1), y necesito actualizar un valor que esta en Form3 hacia ese formulario cpFrm(Form1) instanciado . Pero no se actualiza, tengo que cerrarlo y abrirlo de nuevo:

    He intentado desde Form3, sin exito:    

    1)    Form1.chekcbox1.checked=me.Chechbox.checked    

    2)   usando una funcion publica desde un modulo :  Form1.chekcbox1.checked=Form3.Chechbox.checked

     3)  Y atmbien intente: If (TypeOf cpform Is Form1) Then
                        DirectCast(cpfrm, Form1).EjecutarFuncion(True)
                    End If

     



    Luis C






    martes, 23 de marzo de 2021 0:12

Respuestas

  • Ya encontré la forma

              For Each CurrentForm As Form In Application.OpenForms
                        If CurrentForm.Name = "Form1" Then
                            Dim Form1Instance As Form1 = DirectCast(CurrentForm, Form1)
                            Form1Instance.checkbox.checked = True
                        End If
              Next

    Explicacion: 

    1. Se busca  el formulario dentro de los formularios abiertos hasta encontrar la instancia por nombre
    2. Se declara una variable para crear una instancia al formulario encontrado
    3. Mediante Directcast se le heredan las propiedades del mismo a la instancia declarada
    4. A partir de esa instancia, se obtienen o asignan los valores de los controles obtenidos por DirectCast 


    Luis C





    martes, 23 de marzo de 2021 1:58

Todas las respuestas

  • Ya encontré la forma

              For Each CurrentForm As Form In Application.OpenForms
                        If CurrentForm.Name = "Form1" Then
                            Dim Form1Instance As Form1 = DirectCast(CurrentForm, Form1)
                            Form1Instance.checkbox.checked = True
                        End If
              Next

    Explicacion: 

    1. Se busca  el formulario dentro de los formularios abiertos hasta encontrar la instancia por nombre
    2. Se declara una variable para crear una instancia al formulario encontrado
    3. Mediante Directcast se le heredan las propiedades del mismo a la instancia declarada
    4. A partir de esa instancia, se obtienen o asignan los valores de los controles obtenidos por DirectCast 


    Luis C





    martes, 23 de marzo de 2021 1:58
  • Hola Luis Carlos,

    Gracias por confirmar que se ha encontrado una solución a la consulta realizada.

    Gracias por usar los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    martes, 23 de marzo de 2021 14:11
    Moderador