none
Mi aplicacion MDI pierde los MDIChilds RRS feed

  • Pregunta

  • Hola, estoy  desarrollando una aplicación MDI que funciona a la perfección. En estos dias he desarrollado un control Tabbed basado en el Objeto TabControl para presentar mis formuarios en pestañas y organizar mejor mis ventanas, sin embargo, al mostrar las ventanas dentro de un separador, se pierde toda la funcionalidad MDI, es decir, a pesar de que establezco la propiedad MDIParent de cada formulario hijo a Me(FrmHijo.MDIParent=Me), el valor de la propiedad AtiveMDIChild es Nothing y me genera errores de NullReference Exception, a continuación presento fragmentos de código:

    rem esto va dentro de un controlador de eventos Click del  botón CrearCaso

     Dim FrmProcesos As New FormCasoProcesosNavigationBar
        
     FrmProcesos.CasoAnio = TextBoxAño.Text
     FrmProcesos.CasoProceso = TextBoxCodigoCaso.Text
     FrmProcesos.Text = "Procesos de Causa Jurídica:" & " Año: " & TextBoxAño.Text & " Caso: " & TextBoxCodigoCaso.Text


     Dim ToogleButton1 As Elegant.Ui.ToggleButton
     ToogleButton1 = New Elegant.Ui.ToggleButton
     ToogleButton1.Text = FrmProcesos.Text REM  & " " & sindice.ToStrin
     ToogleButton1.Tag = FrmProcesos
     
     AddHandler ToogleButton1.PressedChanged, AddressOf Me.ToggleButton1_PressedChanged
     PopupMenuVentanasHijas.Items.Add(ToogleButton1)
     AddHandler FrmProcesos.Disposed, AddressOf Me.WinFrmProcesos_Disposed
     AddHandler PopupMenuVentanasHijas.Showing, AddressOf Me.PopupMenuVentanasHijas_Showing

     FrmProcesos.FormBorderStyle = Windows.Forms.FormBorderStyle.None
     Me.TabControlSuper1.AgregarPaginaTabular(FrmProcesos)

     FrmProcesos.MdiParent = Me
     FrmProcesos.Show()

     rem método para agregar el formulario al separador.
     Public Sub AgregarPaginaTabular(ByRef ControlAdd As Control)
            Dim PaginaTabular As New TabPage

            ControlAdd.Tag = PaginaTabular

            PaginaTabular.Text = ControlAdd.Text
            ControlAdd.Dock = DockStyle.Fill
            PaginaTabular.Controls.Add(ControlAdd)

            Me.TabPages.Add(PaginaTabular)
            Me.SelectTab(PaginaTabular)
        End Sub

    No empleo Controles TabMDI  de terceros por motivo del presupuesto.

     

    Roberto


    Developer software
    viernes, 3 de febrero de 2012 2:31

Todas las respuestas

  • que funcion cumple esta linea

    Me.TabControlSuper1.AgregarPaginaTabular(FrmProcesos)

    porque esta algo sospechosa, es el control Tab simple del VS el que usas o es un control de terceros

    porque puede que este este anulando la funcionalidad mdi, digo si hasta antes de usar el tab todo funcionaba y depsues no, el cambio fue agregar el tab

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 3 de febrero de 2012 4:28