none
Me.Owner.Show() RRS feed

  • Pregunta

  • Cuando regreso al formulario padre :

    Me.Owner.Show()

    Me gustaría actualizar que cambiase la etiqueta lbl_Usuario.Text="este es tu texto" . ¿Que evento en el formulario se carga cuando se vuelve a mostrar el formulario padre? 

    Lo iba hacer con un objeto timer , pero no me parece lo más adecuado.

    lunes, 23 de mayo de 2016 8:17

Respuestas

  • Bueno, pues entonces Puedes usar dos variables, una de tipo formulario genérico y otra de tipo label:

    Formulario Padre :

            Dim frm_ConfigUsuarios As New Fr_ConfigUsuarios

            frm_ConfigUsuarios.FormularioPadre = Me
            frm_ConfigUsuarios.LabelPadre = lbl_Usuario

            frm_ConfigUsuarios.Show(Me)

            Me.Hide()

    Vuelvo del formulario hijo :

     Private Sub Fr_ConfigUsuarios_Closed(sender As Object, e As EventArgs) Handles Me.Closed

            LabelPadre.Text = "LoQueSea"

            FormularioPadre.Show()
        End Sub

    En el formulario hijo tienes que declarar la variable pública

    Public Class Fr_ConfigUsuarios
        Public FormularioPadre As Form
        Public LabelPadre as Label

        Private Sub Fr_ConfigUsuarios_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    ...


    Saludos, Javier J

    • Marcado como respuesta Amigozgz martes, 24 de mayo de 2016 9:27
    martes, 24 de mayo de 2016 6:44

Todas las respuestas

  • Por lo que dices creo que el que más se puede ajustar a lo que quieres es el evento Activated que salta cada vez que el formulario se convierte en el formulario activo de la aplicación.


    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, ...

    lunes, 23 de mayo de 2016 9:10
  • Puedes declarar una variable pública en el formulario hijo 

    Public FormularioPadre As Form1

    Al cerrar el formulario hijo ejecutas

    FormularioPadre.Label1.Text = "PRUEBA"
    FormularioPadre.Show()

    y la llamada desde el formulario padre al formulario hijo la haces con

    Using frm As FormularioHijo = New FormularioHijo
        frm.FormularioPadre = Me
        Hide()
        frm.ShowDialog()
    End Using


    Saludos, Javier J

    lunes, 23 de mayo de 2016 9:15
  • Esta forma no funciono.

    Gracias por contestar Asier 

    lunes, 23 de mayo de 2016 11:32
  • Hola Javier ,gracias por responder

     Lo tengo escrito de este modo :

    LLamo al formulario hijo :

      Dim frm_ConfigUsuarios As New Fr_ConfigUsuarios

            frm_ConfigUsuarios.Show(Me)

            Me.Hide()

    Vuelvo del formulario hijo :

     Private Sub Fr_ConfigUsuarios_Closed(sender As Object, e As EventArgs) Handles Me.Closed
            Me.Owner.Show()
        End Sub

    La etiqueta esta en el formulario padre :

    lbl_Usuario.Text

    A ver tengo un Modulo que guarda información global . Con lo cual podría llamarlo desde el formulario Padre para actualizar ese dato. Pero no se que evento existe para que cuando vuelve del formulario hijo se actualice. 

    ¿Que evento sería?

    lunes, 23 de mayo de 2016 11:43
  • LLamo al formulario hijo :

            Dim frm_ConfigUsuarios As New Fr_ConfigUsuarios

            frm_ConfigUsuarios:FormularioPadre = Me

    frm_ConfigUsuarios.Show(Me)

            Me.Hide()

    Vuelvo del formulario hijo :

     Private Sub Fr_ConfigUsuarios_Closed(sender As Object, e As EventArgs) Handles Me.Closed

            FormularioPadre.lbl_Usuario.Text = "LoQueSea"

            FormularioPadre.Show()
        End Sub

    En el formulario hijo tienes que declarar la variable pública

    Public Class Fr_ConfigUsuarios
        Public FormularioPadre As FormPadre

        Private Sub Fr_ConfigUsuarios_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load


    Saludos, Javier J

    lunes, 23 de mayo de 2016 12:07
  • El problema reside en que pude ser el formulario padre ,diferentes formularios, que llaman al hijo "FR_ConfigUsuarios". Debería definir el formulario padre en tiempo de ejecución o hacer un directcast al formulario que es el propietario o llamar capturar al propietario :

           FormularioPadre.lbl_Usuario.Text = "LoQueSea"

            FormularioPadre.Show()

    --------------------------Por eso otro -------------

        Me.Owner.lbl_Usuario.Text = "LoQueSea"    

         Me.Owner.Show()


    -------------------------------------

     Pero debe haber un evento que cuando yo pongo      Me.Owner.Show() , redifibuje, muestre, visalize , active el formulario padre oculto .

      Si es así con una variable global que tengo un módulo reescribiría el texto de la etiqueta lbl_Usuario.Text ="con el contenido del formulario hijo" .

    Gracias de nuevo Javier.


    • Editado Amigozgz lunes, 23 de mayo de 2016 12:41
    lunes, 23 de mayo de 2016 12:38
  • Bueno, pues entonces Puedes usar dos variables, una de tipo formulario genérico y otra de tipo label:

    Formulario Padre :

            Dim frm_ConfigUsuarios As New Fr_ConfigUsuarios

            frm_ConfigUsuarios.FormularioPadre = Me
            frm_ConfigUsuarios.LabelPadre = lbl_Usuario

            frm_ConfigUsuarios.Show(Me)

            Me.Hide()

    Vuelvo del formulario hijo :

     Private Sub Fr_ConfigUsuarios_Closed(sender As Object, e As EventArgs) Handles Me.Closed

            LabelPadre.Text = "LoQueSea"

            FormularioPadre.Show()
        End Sub

    En el formulario hijo tienes que declarar la variable pública

    Public Class Fr_ConfigUsuarios
        Public FormularioPadre As Form
        Public LabelPadre as Label

        Private Sub Fr_ConfigUsuarios_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    ...


    Saludos, Javier J

    • Marcado como respuesta Amigozgz martes, 24 de mayo de 2016 9:27
    martes, 24 de mayo de 2016 6:44
  • Gracias Javier, lo pruebo luego . 
    martes, 24 de mayo de 2016 9:27