Condividi tramite


Eventi nei progetti di Office

Ogni modello di progetto di Office genera automaticamente diversi gestori eventi. I gestori eventi relativi alle personalizzazioni a livello di documento sono lievemente differenti rispetto ai gestori eventi relativi ai componenti aggiuntivi a livello di applicazione.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento e di applicazione per Microsoft Office 2010 e Microsoft Office System 2007. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

Progetti a livello di documento

In Visual Studio vengono forniti fogli di lavoro o documenti nuovi o esistenti code-behind generati nelle personalizzazioni a livello di documento. Tale codice genera due eventi distinti: Startup e Shutdown.

Evento Startup

L'evento Startup viene generato per ogni elemento host (documento, cartella o foglio di lavoro) dopo l'avvio dell'esecuzione del documento e dopo il completamento dell'esecuzione del codice di inizializzazione contenuto nell'assembly. È l'ultimo elemento da eseguire nel costruttore della classe in cui è in esecuzione il codice. Per ulteriori informazioni sugli elementi host, vedere Cenni preliminari sugli elementi e sui controlli host.

Quando si crea un progetto a livello di documento, in Visual Studio vengono creati gestori eventi per l'evento Startup nei file di codice generati:

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

  • Per i progetti Microsoft Office Excel, i gestori eventi sono denominati come segue:

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

Evento Shutdown

L'evento Shutdown viene generato per ogni elemento host (documento o foglio di lavoro) quando il dominio applicazione in cui è caricato il codice sta per essere scaricato. È l'ultimo metodo a essere chiamato nella classe al momento dello scaricamento.

Quando si crea un progetto a livello di documento, in Visual Studio vengono creati gestori eventi per l'evento Shutdown nei file di codice generati:

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

  • Per i progetti Microsoft Office Excel, i gestori eventi sono denominati come segue:

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

Nota

Non rimuovere i controlli a livello di codice utilizzando il gestore eventi Shutdown del documento: gli elementi di 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 di metodo dei gestori eventi

A ogni dichiarazione di metodo del gestore eventi vengono passati gli stessi argomenti, ovvero sender ed e. In Excel l'argomento sender è riferito al foglio, ad esempio Sheet1 o Sheet2; in Word l'argomento sender è riferito al documento. L'argomento e si riferisce agli argomenti standard disponibili per un evento, non utilizzati in questo caso.

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

Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

End Sub

Private Sub ThisDocument_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Shutdown

End Sub
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 Excel.

Nota

Nell'esempio di codice seguente vengono illustrati i gestori eventi della classe Sheet1. I nomi dei gestori eventi delle altre classi di elemento host corrispondono al nome della classe. Ad esempio, il gestore eventi Startup della classe Sheet2 viene denominato Sheet2_Startup, mentre il gestore eventi Startup della classe ThisWorkbook viene denominato ThisWorkbook_Startup.

Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

End Sub

Private Sub Sheet1_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Shutdown

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

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

Ordine degli eventi nei progetti di Excel a livello di documento

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

  1. ThisWorkbook_Startup.

  2. Sheet1_Startup.

  3. Sheet2_Startup.

  4. Sheet3_Startup.

  5. Altri fogli di lavoro nell'ordine.

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

  1. ThisWorkbook_Shutdown.

  2. Sheet1_Shutdown.

  3. Sheet2_Shutdown.

  4. Sheet3_Shutdown.

  5. Altri fogli di lavoro nell'ordine.

L'ordine è determinato al momento della compilazione del progetto. La riorganizzazione dei fogli di lavoro durante la fase di esecuzione non comporta alcuna modifica all'ordine di generazione degli eventi alla successiva apertura o chiusura della cartella di lavoro.

Progetti a livello di applicazione

In Visual Studio viene fornito codice generato nei componenti aggiuntivi a livello di applicazione. Questo codice genera due eventi distinti: Startup e Shutdown.

Evento Startup

L'evento Startup viene generato dopo il caricamento del componente aggiuntivo e l'esecuzione di tutto il codice di inizializzazione contenuto nell'assembly. Questo evento viene gestito dal metodo ThisAddIn_Startup contenuto nel file di codice generato.

Il codice contenuto nel gestore eventi ThisAddIn_Startup è il primo codice utente a essere eseguito, a meno che il componente aggiuntivo utilizzato esegua l'override del metodo RequestComAddInAutomationService. In questo caso, il gestore eventi ThisAddIn_Startup viene chiamato dopo la chiamata al metodo RequestComAddInAutomationService. Nei componenti aggiuntivi di Microsoft Office System 2007, se il componente aggiuntivo utilizzato esegue l'override del metodo RequestService, è possibile che dopo la chiamata a questo metodo venga chiamato anche il gestore eventi ThisAddIn_Startup.

Per ulteriori informazioni sulla sequenza di avvio dei componenti aggiuntivi, vedere Architettura dei componenti aggiuntivi a livello di applicazione.

Evento Shutdown

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

Evento Shutdown nei componenti aggiuntivi di 2010

Per i componenti aggiuntivi caricati in Outlook 2010, l'evento Shutdown viene generato solo quando l'utente disabilita il componente aggiuntivo utilizzando la finestra di dialogo Componenti aggiuntivi COM in Outlook. Non viene generato quando si esce da Outlook. Se è presente codice che deve essere eseguito alla chiusura di Outlook, gestire uno degli eventi seguenti:

Nota

È possibile imporre a Outlook la generazione dell'evento Shutdown alla chiusura modificando il Registro di sistema. Tuttavia, se un amministratore di ripristinare questa impostazione, qualsiasi codice che non si aggiunge all'esecuzione del metodo ThisAddIn_Shutdown più alla chiusura di Outlook. Per ulteriori informazioni, vedere l'argomento relativo alle modifiche dell'arresto per Outlook 2010.

Vedere anche

Attività

Procedura: creare progetti di Office in Visual Studio

Altre risorse

Sviluppo di soluzioni Office

Programmazione delle personalizzazioni a livello di documento

Programmazione di componenti aggiuntivi a livello di applicazione

Cenni preliminari sui modelli di progetto di Office