none
¿Cómo ejecutar el evento Load de un formulario, desde otro formulario? RRS feed

  • Pregunta

  • En vb net, o sea tengo dos formularios abiertos, quiero ejecutar el evento Load de uno de ellos desde el otro formulario. Si pueden ponen la linea de código porfa.

    lunes, 1 de febrero de 2016 8:18

Respuestas

  • Vamos por partes.

    Si tienes que ejecutar el código que tienes en el evento load en un momento diferente a la carga del formulario es señal de que ese código no debería estar ahí.

    Si además ese código debe ejecutarse desde fuera del formulario no tienes más que exponerlo en un método para que pueda ser llamado tanto desde el propio formulario como externamente.

    Mira este ejemplo:

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            ActualizacionDatos()
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
            Dim segundoForm as New Form2
            segundoForm.Show(Me)        
        End Sub
    
        Friend Sub ActualizacionDatos()
            ' Tareas de actualización de datos del formulario
        End Sub

    El método ActualizacionDatos tiene el código que quieres ejecutar tanto en el Load como al ejecutarse con llamadas externas al formulario.

    En el código del click del botón creo el segundo formulario y le asigno como propietario el formulario actual. De esta forma en el segundo formulario tengo una referencia al primero.

    En el segundo formulario en cualquier momento puedo llamar al método ActualizacionDatos del primero:

            Dim ownerForm As Form1 = Me.Owner
            ownerForm.ActualizacionDatos()
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 lunes, 1 de febrero de 2016 21:09
    lunes, 1 de febrero de 2016 8:32

Todas las respuestas

  • Vamos por partes.

    Si tienes que ejecutar el código que tienes en el evento load en un momento diferente a la carga del formulario es señal de que ese código no debería estar ahí.

    Si además ese código debe ejecutarse desde fuera del formulario no tienes más que exponerlo en un método para que pueda ser llamado tanto desde el propio formulario como externamente.

    Mira este ejemplo:

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            ActualizacionDatos()
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
            Dim segundoForm as New Form2
            segundoForm.Show(Me)        
        End Sub
    
        Friend Sub ActualizacionDatos()
            ' Tareas de actualización de datos del formulario
        End Sub

    El método ActualizacionDatos tiene el código que quieres ejecutar tanto en el Load como al ejecutarse con llamadas externas al formulario.

    En el código del click del botón creo el segundo formulario y le asigno como propietario el formulario actual. De esta forma en el segundo formulario tengo una referencia al primero.

    En el segundo formulario en cualquier momento puedo llamar al método ActualizacionDatos del primero:

            Dim ownerForm As Form1 = Me.Owner
            ownerForm.ActualizacionDatos()
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta James-2016 lunes, 1 de febrero de 2016 21:09
    lunes, 1 de febrero de 2016 8:32
  • Gracias, es precisamente lo que quería, en realidad en el evento Load llamo a un procedimiento que también lo quiero ejecutar desde el segundo formulario.

    Entonces lo que necesitaba no era un procedimiento sino un método.

    lunes, 1 de febrero de 2016 21:09