Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas cnon singlketon y VB.net

Estas en el tema de Problemas cnon singlketon y VB.net en el foro de .NET en Foros del Web. Hola saben tengo el siguente problema sucede que estoy utilizando singeton para trabajar con user control en VB.net mi porblema es que cada control los ...
  #1 (permalink)  
Antiguo 02/06/2010, 16:27
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 21 años
Puntos: 0
Problemas cnon singlketon y VB.net

Hola saben tengo el siguente problema sucede que estoy utilizando singeton para trabajar con user control en VB.net mi porblema es que cada control los cargo en un user control padre y mediante algunos botones hago las llamadas a las uc hijas
Ventana Padre
Código:
Public Class ucRBI
    Dim ventanaResumenGlobal As RBI.ucRiesgoGlobal
    Dim ventanaRiesgoEquipo As RBI.ucRiesgoEquipo
    Private Shared instancia As ucRBI = Nothing

    Public Shared Function getInstancia() As ucRBI
        ' initialize if not already done
        If instancia Is Nothing Then
            instancia = New ucRBI
        End If
        ' return the initialized instance of the Singleton Class
        Return instancia
    End Function 'Instance

    Private Sub ucRBI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        abrirVentana("RiesgoGlobal")
    End Sub
    Public Sub cerrarVentana()
        pContenido.Controls.Clear()
    End Sub
    Public Sub abrirVentana(ByVal nomVentana As String)
        If (nomVentana.Equals("RiesgoGlobal")) Then
            ventanaResumenGlobal = RBI.ucRiesgoGlobal.getInstancia
            pContenido.Controls.Add(ventanaResumenGlobal)
            ventanaResumenGlobal.BringToFront()
        End If
        If (nomVentana.Equals("RiesgoEquipo")) Then
            ventanaRiesgoEquipo = RBI.ucRiesgoEquipo.getInstancia
            pContenido.Controls.Add(ventanaRiesgoEquipo)
            ventanaRiesgoEquipo.BringToFront()
        End If
        
    End Sub


    Private Sub btnFichaRBI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFichaRBI.Click
        abrirVentana("RiesgoGlobal")
    End Sub

    Private Sub btnMaestros_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMaestros.Click
        abrirVentana("RiesgoEquipo")
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        cerrarVentana()
    End Sub
End Class
este es una hija que tiene un boton para llamara a una 3 ventana
Código:
Public Class ucRiesgoGlobal
    Dim ventanaPadre As RBI.ucRBI
    Private Shared instancia As ucRiesgoGlobal = Nothing
    Public Shared Function getInstancia() As ucRiesgoGlobal
        ' initialize if not already done
        If instancia Is Nothing Then
            instancia = New ucRiesgoGlobal
        End If
        ' return the initialized instance of the Singleton Class
        Return instancia
    End Function 'Instance

    Private Sub btnDetalle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDetalle.Click
        RBI.ucRBI.getInstancia().abrirVentana("RiesgoEquipo")
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        ventanaPadre = RBI.ucRBI.getInstancia()
        ventanaPadre.cerrarVentana()
    End Sub
End Class
mi porblema es que si utilizo las funciones de abriri las ventanas dentro de la ventana padre no tengo ningun porblema de abrir cada una pero si necesito accesar desde una hija y mostrar otra hija esta no se ejecuta etsto se puede ver en el boton detalle que llama a una 3 ventana pero no se me carga de forma visual, pero si hago el llamado directo del padre no tengo problemas la razon es que cada hija debe tener control de sus detalles pero debo cargar simre el uc en el padre espeor que se entienda y me puedan ayudar.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:18.