Condividi tramite


Eventi nei progetti di Office

Ogni modello di progetto di Office genera automaticamente diversi gestori eventi. I gestori eventi per le personalizzazioni a livello di documento sono leggermente diversi dai gestori eventi per componenti aggiuntivi VSTO.

Si applica a: le informazioni contenute in questo argomento si applicano ai progetti a livello di documento e ai progetti di componente aggiuntivo VSTO. Vedere Funzionalità disponibili per app Office lication e tipo di progetto.

Progetti a livello di documento

Visual Studio fornisce codice generato sottostante documenti nuovi o esistenti o fogli di lavoro nelle personalizzazioni a livello di documento. Questo codice genera due eventi distinti: Startup e Shutdown.

Startup (evento)

L'evento Startup viene generato per ogni elemento host (documento, cartella di lavoro o foglio di lavoro) dopo l'esecuzione del documento e di tutto il codice di inizializzazione nell'assembly. È l'ultima operazione da eseguire nel costruttore della classe in cui viene eseguito il codice. Per altre informazioni sugli elementi host, vedere Panoramica degli elementi host e dei controlli host.

Quando si crea un progetto a livello di documento, Visual Studio crea gestori eventi per l'evento Startup nei file del codice generato:

  • Per i progetti di Microsoft Office Word, il gestore eventi è denominato ThisDocument_Startup.

  • Per i progetti di Microsoft Office Excel, i gestori di eventi presentano i nomi seguenti:

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

Shutdown (evento)

L'evento Shutdown viene generato per ogni elemento host (documento o foglio di lavoro) quando il dominio dell'applicazione in cui è caricato il codice sta per essere scaricato. È l'ultima operazione da chiamare nella classe durante lo scaricamento.

Quando si crea un progetto a livello di documento, Visual Studio crea gestori eventi per l'evento Shutdown nei file del codice generato:

  • Per i progetti di Microsoft Office Word, il gestore eventi è denominato ThisDocument_Shutdown.

  • Per i progetti di Microsoft Office Excel, i gestori di eventi presentano i nomi seguenti:

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

Nota

Non rimuovere a livello di codice i controlli durante l'esecuzione del gestore dell'evento Shutdown del documento. Gli elementi dell'interfaccia utente del documento non sono più disponibili quando si verifica l'evento Shutdown . Se si desidera rimuovere i controlli prima della chiusura dell'applicazione, aggiungere il codice a un altro gestore eventi, ad esempio BeforeClose o BeforeSave.

Dichiarazioni del metodo del gestore eventi

A ogni dichiarazione di metodo del gestore eventi vengono passati gli stessi argomenti: sender e e. In Excel, l'argomento sender fa riferimento al foglio, ad esempio Sheet1 o Sheet2. In Word, l'argomento sender fa riferimento al documento. L'argomento e fa riferimento agli argomenti standard per un evento, che non vengono usati in questo caso.

Nell'esempio di codice seguente vengono illustrati i gestori eventi predefiniti in progetti a livello di documento di Word.

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

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

Nell'esempio di codice seguente vengono illustrati i gestori eventi predefiniti in progetti a livello di documento di Excel.

Nota

Nell'esempio di codice riportato di seguito vengono illustrati i gestori eventi nella classe Sheet1 . I nomi dei gestori eventi in altre classi dell'elemento host corrispondono al nome della classe. Ad esempio, nella classe Sheet2 , il gestore eventi Startup è denominato Sheet2_Startup. Nella classe ThisWorkbook , il gestore eventi Startup è denominato ThisWorkbook_Startup.

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

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

Ordine degli eventi nei progetti Excel a livello di documento

I gestori eventi Startup nei progetti di Excel vengono chiamati nell'ordine seguente:

  1. ThisWorkbook_Startup.

  2. Sheet1_Startup.

  3. Sheet2_Startup.

  4. Sheet3_Startup.

  5. Altri fogli in ordine.

    I gestori eventi Shutdown in una soluzione di cartella di lavoro vengono chiamati nell'ordine seguente:

  6. ThisWorkbook_Shutdown.

  7. Sheet1_Shutdown.

  8. Sheet2_Shutdown.

  9. Sheet3_Shutdown.

  10. Altri fogli in ordine.

    L'ordine viene determinato quando viene compilato il progetto. Se l'utente riorganizza i fogli in fase di esecuzione, non viene modificato l'ordine poiché gli eventi vengono generati alla successiva apertura o chiusura della cartella di lavoro.

Progetti di componente aggiuntivo VSTO

Visual Studio fornisce codice generato nei componenti aggiuntivi VSTO. Questo codice genera due eventi diversi: Startup e Shutdown.

Startup (evento)

L'evento Startup viene generato dopo che il componente aggiuntivo VSTO viene caricato e tutto il codice di inizializzazione nell'assembly è stato eseguito. Questo evento viene gestito dal metodo ThisAddIn_Startup nel file di codice generato.

Il codice nel gestore eventi ThisAddIn_Startup è il primo codice utente da eseguire, a meno che il componente aggiuntivo VSTO non esegua l'override del metodo RequestComAddInAutomationService . In questo caso, il gestore eventi ThisAddIn_Startup viene chiamato dopo RequestComAddInAutomationService.

Non aggiungere codice nel ThisAdd-In_Startup gestore eventi se il codice richiede l'apertura di un documento. Al contrario, aggiungere tale codice a un evento generato dall'applicazione di Office quando un utente crea o apre un documento. Per altre informazioni, vedere Accedere a un documento all'avvio del app Office lication.

Per altre informazioni sulla sequenza di avvio dei componenti aggiuntivi VSTO, vedere Architettura dei componenti aggiuntivi VSTO.

Shutdown (evento)

L'evento Shutdown viene generato quando il dominio dell'applicazione in cui è caricato il codice sta per essere scaricato. Questo evento viene gestito dal metodo ThisAddIn_Shutdown nel file di codice generato. Questo gestore eventi è l'ultimo codice utente da eseguire quando viene scaricato il componente aggiuntivo VSTO.

Evento shutdown nei componenti aggiuntivi VSTO di Outlook

L'evento Shutdown viene generato solo quando l'utente disabilita il componente aggiuntivo VSTO usando la finestra di dialogo dei componenti aggiuntivi COM in Outlook. Non viene generato quando si esce da Outlook. Se si dispone di codice che deve essere eseguito quando si esce da Outlook, gestire uno degli eventi seguenti:

Nota

È possibile imporre a Outlook di generare l'evento Shutdown alla chiusura modificando il Registro di sistema. Tuttavia, se un amministratore ripristina questa impostazione, qualsiasi codice viene aggiunto al metodo ThisAddIn_Shutdown , non viene più eseguito quando si esce da Outlook. Per altre informazioni, vedere Arresto delle modifiche per Outlook 2010.