Conocer el número de formularios existentes en el proyecto
Por Enrique Martínez Montejo
Última revisión: 28/02/2010
 

A partir de la versión 2005 de Visual Basic, es fácil conocer el número de formularios que actualmente se encuentran abiertos. Simplemente basta con llamar a la propiedad Count de la propiedad OpenForms del objeto Application:

Dim n As Integer = Application.OpenForms.Count()

MessageBox.Show(CStr(n))

Pero si lo que deseamos es conocer el número de clases que heredan de la clase System.Windows.Forms.Form, es decir, todos los formularios disponibles en nuestro proyecto, no es tan fácil pero tampoco demasiado complicado de averiguar, tal y como muestra la siguiente función:

Private Function FormsCount() As Integer

    ' Obtenemos una referencia al ensamblado actual
    '

    Dim asm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly()

    Dim n As Integer

    For Each ty As Type In asm.GetTypes()
        ' Obtenemos el nombre del tipo del que hereda
        ' directamente el objeto System.Type actual.
        '

        If (ty.BaseType.Name.Equals("Form")) Then n += 1
    Next

    Return n

End Function

Ahora, sólo basta con llamar a la función de la siguiente manera:

Dim n As Integer = FormsCount()

MessageBox.Show("Número de formularios: " & CStr(n))

 

Otros enlaces de interés:

Índice de la colección de ejemplos de las clases del marco de trabajo de .NET


Enrique Martínez Montejo - 2010

NOTA: La información contenida en este artículo, así como el código fuente incluido en el mismo, se proporciona COMO ESTÁ, sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo explicado, recomendado o sugerido en el presente artículo.

NOTE: The information contained in this article and source code included therein, is provided AS IS without warranty of any kind, and confers no rights. You assume any risk to implement, use or run it explained, recommended or suggested in this article.