Eventos en proyectos de Office

Cada plantilla de proyecto de Office genera automáticamente varios controladores de eventos. Los controladores de eventos de las personalizaciones de nivel de documento son ligeramente diferentes de los controladores de eventos de los complementos de VSTO.

Se aplica a: la información de este tema se aplica a proyectos de nivel de documento y proyectos de complementos de VSTO. Consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

Proyectos de nivel de documento

Visual Studio proporciona código generado subyacente en documentos nuevos o existentes o en hojas de cálculo para las personalizaciones de nivel de documento. Este código genera dos eventos diferentes: Startup y Shutdown.

Startup (evento)

El evento Startup se desencadena para cada uno de los elementos host (documento, libro u hoja de cálculo) cuando el documento está en ejecución y ya se ha ejecutado todo el código de inicialización del ensamblado. Es lo último que se ejecuta en el constructor de la clase en la que se ejecuta el código. Para obtener más información sobre los elementos host, consulte Información general sobre los elementos host y los controles host.

Cuando se crea un proyecto de nivel de documento, Visual Studio crea controladores de eventos para el evento Startup en los archivos de código generado:

  • En los proyectos de Microsoft Office Word, el controlador de eventos se denomina ThisDocument_Startup.

  • En los proyectos de Microsoft Office Excel, los controladores de eventos tienen los nombres siguientes:

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

Shutdown (evento)

El evento Shutdown se desencadena para cada uno de los elementos host (documento u hoja de cálculo) cuando el dominio de aplicación en el que se ha cargado el código está a punto de descargarse. Es lo último a lo que se llama en la clase cuando se descarga.

Cuando se crea un proyecto de nivel de documento, Visual Studio crea controladores de eventos para el evento Shutdown en los archivos de código generado:

  • En los proyectos de Microsoft Office Word, el controlador de eventos se denomina ThisDocument_Shutdown.

  • En los proyectos de Microsoft Office Excel, los controladores de eventos tienen los nombres siguientes:

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

Nota:

No quite controles mediante programación durante el controlador de eventos Shutdown del documento. Los elementos de la interfaz de usuario del documento ya no están disponibles cuando se produce el evento Shutdown . Si desea quitar controles antes de que se cierre la aplicación, agregue el código a otro controlador de eventos, como BeforeClose o BeforeSave.

Declaraciones de método de controlador de eventos

Todas las declaraciones del método de controlador de eventos reciben los mismos argumentos que se les pasan: sender y e. En Excel, el argumento sender hace referencia a la hoja, como Sheet1 o Sheet2; en Word, el argumento sender hace referencia al documento. El argumento e hace referencia a los argumentos estándar de un evento, que no se usan en este caso.

El ejemplo de código siguiente muestra los controladores de eventos predeterminados en los proyectos de nivel de documento para Word.

private void ThisDocument_Startup(object sender, System.EventArgs e)
{
}

private void ThisDocument_Shutdown(object sender, System.EventArgs e)
{
}

El ejemplo de código siguiente muestra los controladores de eventos predeterminados en los proyectos de nivel de documento para Excel.

Nota:

En el ejemplo de código siguiente se muestran los controladores de eventos de la clase Sheet1 . Los nombres de los controladores de eventos de otras clases del elemento host corresponden al nombre de la clase. Por ejemplo, en la clase Sheet2 , el controlador de eventos Startup se denomina Sheet2_Startup. En la clase ThisWorkbook , el controlador de eventos Startup se denomina ThisWorkbook_Startup.

private void Sheet1_Startup(object sender, System.EventArgs e)
{
}

private void Sheet1_Shutdown(object sender, System.EventArgs e)
{
}

Orden de eventos en proyectos de Excel de nivel de documento

Los controladores de eventos Startup en proyectos de Excel se llaman en este orden:

  1. ThisWorkbook_Startup.

  2. Sheet1_Startup.

  3. Sheet2_Startup.

  4. Sheet3_Startup.

  5. Otras hojas en orden.

    Los controladores de eventos Shutdown en una solución de libro se llaman en este orden:

  6. ThisWorkbook_Shutdown.

  7. Sheet1_Shutdown.

  8. Sheet2_Shutdown.

  9. Sheet3_Shutdown.

  10. Otras hojas en orden.

    El orden se determina cuando se compila el proyecto. Si el usuario reorganiza las hojas en tiempo de ejecución, no cambia el orden en que los eventos se desencadenan la siguiente vez que se abre o cierra el libro.

Proyectos de complemento de VSTO

Visual Studio proporciona código generado en complementos de VSTO. Este código genera dos eventos diferentes: Startup y Shutdown.

Startup (evento)

El evento Startup se desencadena cuando se ha cargado el complemento de VSTO y se ha ejecutado todo el código de inicialización del ensamblado. Este evento está controlado por el método ThisAddIn_Startup en el archivo de código generado.

El código del controlador de eventos ThisAddIn_Startup es el primer código de usuario que se ejecuta, a menos que el complemento de VSTO invalide el método RequestComAddInAutomationService . En ese caso, se llama al controlador de eventos ThisAddIn_Startup después de RequestComAddInAutomationService.

No agregue código en el ThisAdd-In_Startup controlador de eventos si el código requiere que un documento esté abierto. En su lugar, agregue ese código a un evento que sea generado por la aplicación de Office cuando un usuario cree o abra un documento. Para obtener más información, consulte Acceso a un documento cuando se inicia la aplicación de Office lication.

Para obtener más información sobre la secuencia de inicio de complementos de VSTO, vea Arquitectura de complementos de VSTO.

Shutdown (evento)

El evento Shutdown se desencadena cuando el dominio de aplicación en el que se ha cargado el código está a punto de descargarse. Este evento está controlado por el método ThisAddIn_Shutdown en el archivo de código generado. Este controlador de eventos es el último código de usuario que se ejecuta cuando se descarga el complemento de VSTO.

Evento shutdown en complementos VSTO de Outlook

El evento Shutdown solo se desencadena cuando el usuario deshabilita el complemento de VSTO mediante el cuadro de diálogo Complementos COM de Outlook. No se desencadena cuando se cierra Outlook. Si tiene código que se debe ejecutar cuando Outlook se cierra, controle uno de los siguientes eventos:

Nota:

Puede modificar el Registro para forzar a Outlook a desencadenar el evento Shutdown cuando salga. Sin embargo, si un administrador cambia esta configuración, cualquier código que agregue al método ThisAddIn_Shutdown dejará de ejecutarse al salir de Outlook. Para obtener más información, vea Cambios de apagado para Outlook 2010.