Ampliar el modelo de la aplicación de Visual Basic

Puede agregar funcionalidad al modelo de la aplicación reemplazando los miembros Overridable de la clase WindowsFormsApplicationBase.Esta técnica le permite personalizar el comportamiento del modelo de la aplicación y agregar llamadas a sus propios métodos mientras se inicia y se cierra la aplicación.

Información general visual del modelo de la aplicación

Esta sección presenta visualmente la secuencia de llamadas a funciones en el Modelo de aplicaciones de Visual Basic.La sección siguiente describe en detalle el propósito de cada función.

El gráfico siguiente muestra la secuencia de llamadas al modelo de aplicaciones en una aplicación normal de formularios Windows Forms de Visual Basic.La secuencia se inicia cuando el procedimiento Sub Main llama al método Run.

Modelo de aplicación de Visual Basic -- Ejecutar

El modelo de aplicaciones de Visual Basic proporciona los eventos StartupNextInstance y UnhandledException.Los gráficos siguientes muestran el mecanismo para provocar estos eventos.

Modelo de aplicación de Visual Basic -- Siguiente instanciaExcepción no controlada del modelo de aplicación de Visual Basic

Reemplazar los métodos base

El método Run define el orden en que se ejecutan los métodos de la Application.De manera predeterminada, el procedimiento Sub Main de una aplicación de Windows Forms llama al método Run.

Si la aplicación es normal (una aplicación con varias instancias) o es la primera instancia de una aplicación de instancia única, el método Run ejecuta los métodos Overridable en el orden siguiente:

  1. OnInitialize.De manera predeterminada, este método establece los estilos visuales, los estilos de presentación de texto y en la entidad de seguridad actual del subproceso principal de la aplicación (si esta utiliza la autenticación de Windows), además de llamar a ShowSplashScreen si no se utiliza /nosplash ni -nosplash como argumento de la línea de comandos.

    La secuencia de inicio de la aplicación se cancela si esta función devuelve False.Esto puede ser útil si hay circunstancias en las que la aplicación no se debe ejecutar.

    El método OnInitialize llama a los métodos siguientes:

    1. ShowSplashScreen.Determina si la aplicación tiene una pantalla de presentación definida y, en tal caso, muestra la pantalla de presentación en un subproceso independiente.

      El método ShowSplashScreen contiene el código que muestra la pantalla de presentación durante, al menos, el número de milisegundos especificado por la propiedad MinimumSplashScreenDisplayTime.Para utilizar esta funcionalidad, hay que agregar la pantalla de presentación a la aplicación mediante el Diseñador de proyectos (que establece la propiedad My.Application.MinimumSplashScreenDisplayTime en dos segundos) o establecer la propiedad My.Application.MinimumSplashScreenDisplayTime en un método que reemplace al método OnInitialize u OnCreateSplashScreen.Para obtener más información, vea MinimumSplashScreenDisplayTime.

    2. OnCreateSplashScreen.Permite a un diseñador emitir código que inicializa la pantalla de presentación.

      De forma predeterminada, este método no hace nada.Si se selecciona una pantalla de presentación para la aplicación en el Diseñador de proyectos de Visual Basic, el diseñador reemplaza el método OnCreateSplashScreen con un método que establece la propiedad SplashScreen en una nueva instancia del formulario de la pantalla de presentación.

  2. OnStartup.Proporciona un punto de extensibilidad para generar el evento Startup.La secuencia de inicio de la aplicación se detiene si esta función devuelve False.

    De manera predeterminada, este método genera el evento Startup.Si el controlador de eventos establece la propiedad Cancel del argumento de evento en True, el método devuelve False para cancelar el inicio de la aplicación.

  3. OnRun.Proporciona el punto inicial cuando la aplicación principal está lista para comenzar a ejecutarse, después de finalizar la inicialización.

    De forma predeterminada, antes de entrar en el bucle del mensaje de formularios Windows Forms, este método llama a los métodos OnCreateMainForm (para crear el formulario principal de la aplicación) y HideSplashScreen (para cerrar la pantalla de presentación):

    1. OnCreateMainForm.Proporciona a un diseñador una manera de emitir código que inicializa el formulario principal.

      De forma predeterminada, este método no hace nada.Sin embargo, cuando se selecciona un formulario principal para la aplicación en el Diseñador de proyectos de Visual Basic, el diseñador reemplaza el método OnCreateMainForm con un método que establece la propiedad MainForm en una nueva instancia del formulario principal.

    2. HideSplashScreen.Si la aplicación tiene definida una pantalla de presentación y está abierta, este método cierra la pantalla de presentación.

      De manera predeterminada, este método cierra la pantalla de presentación.

  4. OnStartupNextInstance.Proporciona una manera de personalizar el comportamiento de una aplicación de instancia única cuando se inicia otra instancia de la aplicación.

    De manera predeterminada, este método genera el evento StartupNextInstance.

  5. OnShutdown.Proporciona un punto de extensibilidad para generar el evento Shutdown.Este método no se ejecuta si se produce una excepción no controlada en la aplicación principal.

    De manera predeterminada, este método genera el evento Shutdown.

  6. OnUnhandledException.Se ejecuta si se produce una excepción no controlada en cualquiera de los métodos enumerados anteriormente.

    De manera predeterminada, este método genera el evento UnhandledException siempre que no se haya adjuntado un depurador y la aplicación esté controlando el evento UnhandledException.

Si la aplicación es de instancia única y ya está en ejecución, la siguiente instancia de la aplicación llama al método OnStartupNextInstance en la instancia original de la aplicación y, después, finaliza.

El constructor WindowsFormsApplicationBase llama a la propiedad UseCompatibleTextRendering para determinar qué motor de representación de texto se debe utilizar para los formularios de la aplicación.De forma predeterminada, la propiedad UseCompatibleTextRendering devuelve False, que indica que se utilice motor de representación de texto GDI, que es el valor predeterminado en Visual Basic 2005.Puede reemplazar la propiedad UseCompatibleTextRendering para que devuelva True, que indica que se debe usar el motor de representación de texto GDI+, que es la configuración predeterminada en Visual Basic .NET 2002 y Visual Basic .NET 2003.

Configurar la aplicación

Como una parte del modelo de aplicaciones de Visual Basic, la clase WindowsFormsApplicationBase suministra propiedades protegidas que configuran la aplicación.Estas propiedades se deben establecer en el constructor de la clase que las implementa.

En un proyecto predeterminado de formularios Windows Forms, el Diseñador de proyectos crea el código para establecer las propiedades con la configuración del diseñador.Las propiedades sólo se utilizan cuando la aplicación está iniciándose; establecerlas después de que se inicia la aplicación no tiene ningún efecto.

Propiedad

Determina

Valor en el panel de la aplicación del Diseñador de proyectos

IsSingleInstance

Si la aplicación se ejecuta como una instancia única o una aplicación de varias instancias.

Casilla deCree una aplicación de instancia única

EnableVisualStyles

Si la aplicación utiliza los estilos visuales que coinciden con Windows XP.

Casilla deLos estilos visuales de XP de permiso

SaveMySettingsOnExit

Si la aplicación guarda automáticamente los cambios en la configuración del usuario de la aplicación cuando finaliza.

Casilla deGuarde My.Settings en el cierre

ShutdownStyle

Lo que hace que la aplicación finalice, por ejemplo cuando se cierra el formulario de inicio o cuando se cierra el último formulario.

Lista deModo de apagado

Vea también

Referencia

ApplicationBase

Startup

StartupNextInstance

UnhandledException

Shutdown

NetworkAvailabilityChanged

WindowsFormsApplicationBase

Aplicación (Página, Diseñador de proyectos) (Visual Basic)

Conceptos

Información general sobre el modelo de aplicaciones de Visual Basic