none
utilizar funcion ingresando nombre de form.vb RRS feed

  • Pregunta

  • Buenos dias!!!

    tengo un Proyecto en el cual mi form principal usa un  TabControl, ademas de ser un MdiConteiner.

    Estoy usando la siguiente rutina para abrir ventanas en mi tbcontrol. la rutina sirve para abrir ventanas abiertas, o traer al frente ventanas que ya fueron abiertas.

    Sub buttton(ByVal ventana As Form)
    
            Dim child As Form = Nothing
    
            For Each f As Form In MdiChildren
                If TypeOf f Is NOMBREDEVENTANA Then
                    child = f
                    Exit For
                End If
            Next
            If child Is Nothing Then
                child = New NOMBREDEVENTANA()
                child.MdiParent = Me
                child.Show()
            Else
                child.Activate()
            End If
    
        End Sub

    esta rutina la utilize en el linkpressed del boton (hay muchos), pero lo que intento es refactorizar usando una function, mandando el nombre de la ventana en cuestion como parametro Form, pero no me permite usar la variable "ventana" en "NOMBREDEVENTANA".

    Alguna sugerencia?

    martes, 6 de septiembre de 2016 17:16

Respuestas

  • La comparación la puedes hacer por tipos, es decir, por ejemplo así:

    If f.GetType()=ventana.GaetType() Then ...

    Y la instanciación debería ser innecesaria, es decir, si ya estás pasando "ventana as Form" entonces ya tienes una instancia de ventana (el New lo hiciste antes de pasarla como argumento). Por lo tanto, no necesitas hacer child=New NOMBREDEVENTANA, te basta con hacer child=ventana.

    miércoles, 7 de septiembre de 2016 6:56