Procedura dettagliata: Visualizzare riquadri attività personalizzati con messaggi di posta elettronica in Outlook
Questa procedura dettagliata illustra come visualizzare un'istanza univoca di un riquadro attività personalizzato con ogni messaggio di posta elettronica creato o aperto. Gli utenti possono visualizzare o nascondere il riquadro attività personalizzato usando un pulsante nella barra multifunzione di ogni messaggio di posta elettronica.
Si applica a: le informazioni contenute in questo argomento si applicano ai progetti di componente aggiuntivo VSTO per Outlook. Per altre informazioni, vedere Funzionalità disponibili per app Office lication e tipo di progetto.
Per visualizzare un riquadro attività personalizzato con più finestre di esplorazione o di controllo, è necessario creare un'istanza del riquadro attività personalizzato per ogni finestra aperta. Per altre informazioni sul comportamento dei riquadri attività personalizzati nelle finestre di Outlook, vedere Riquadri attività personalizzati.
Nota
Questa procedura dettagliata presenta il codice del componente aggiuntivo VSTO in sezioni di piccole dimensioni per semplificare la descrizione della logica su cui si basa il codice.
In questa procedura dettagliata sono illustrati i task seguenti:
Progettazione dell'interfaccia utente del riquadro attività personalizzato.
Creazione di un'interfaccia utente della barra multifunzione personalizzata.
Visualizzazione dell'interfaccia utente personalizzata della barra multifunzione con messaggi di posta elettronica.
Creazione di una classe per la gestione delle finestre di controllo e dei riquadri attività personalizzati.
Inizializzazione e pulizia delle risorse usate dal componente aggiuntivo VSTO.
Sincronizzazione dell'interruttore della barra multifunzione con il riquadro attività personalizzato.
Nota
I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzare l'IDE di Visual Studio.
Prerequisiti
Per completare questa procedura dettagliata, è necessario disporre dei componenti seguenti:
Una versione di Visual Studio che include Microsoft Office Developer Tools. Per altre informazioni, vedere Configurare un computer per sviluppare soluzioni Office.
Microsoft Outlook 2013 o Microsoft Outlook 2010.
Creare il progetto
I riquadri attività personalizzati vengono implementati nei componenti aggiuntivi VSTO. Per iniziare, creare un progetto di componente aggiuntivo VSTO per Outlook.
Per creare un nuovo progetto
Creare un progetto di componente aggiuntivo di Outlook denominato OutlookMailItemTaskPane. Usare il modello di progetto per il componente aggiuntivo di Outlook . Per altre informazioni, vedere Procedura: Creare progetti di Office in Visual Studio.
Visual Studio apre il file di codice ThisAddIn.cs o ThisAddIn.vb e aggiunge il progetto OutlookMailItemTaskPane a Esplora soluzioni.
Progettare l'interfaccia utente del riquadro attività personalizzato
Non sono presenti finestre di visualizzazione visiva per i riquadri attività personalizzati, ma è possibile progettare un controllo utente con l'interfaccia utente desiderata. Il riquadro attività personalizzato in questo componente aggiuntivo VSTO ha un'interfaccia utente semplice che contiene un controllo TextBox . Più avanti in questa procedura dettagliata il controllo utente verrà aggiunto al riquadro attività personalizzato.
Per progettare l'interfaccia utente del riquadro attività personalizzato
In Esplora soluzionifare clic sul progetto OutlookMailItemTaskPane .
Nel menu Progetto fare clic su Aggiungi controllo utente.
Nella finestra di dialogo Aggiungi nuovo elemento modificare il nome del controllo utente in TaskPaneControl, quindi fare clic su Aggiungi.
Il controllo utente viene visualizzato nella finestra di progettazione.
Nella scheda Controlli comuni della casella degli strumentitrascinare un controllo TextBox nel controllo utente.
Progettare l'interfaccia utente della barra multifunzione
Uno degli obiettivi di questo componente aggiuntivo VSTO consiste nell'offrire agli utenti un modo per nascondere o visualizzare il riquadro attività personalizzato dalla barra multifunzione di ogni messaggio di posta elettronica. Per fornire l'interfaccia utente, creare un'interfaccia utente della barra multifunzione personalizzata che visualizza un interruttore che gli utenti possono selezionare per visualizzare o nascondere il riquadro attività personalizzato.
Per creare un'interfaccia utente della barra multifunzione personalizzata
Dal menu Progetto fare clic su Aggiungi nuovo elemento.
Nella finestra di dialogo Aggiungi nuovo elemento selezionare Barra multifunzione (finestra di progettazione visiva).
Modificare il nome della nuova barra multifunzione in ManageTaskPaneRibbone fare clic su Aggiungi.
Il file ManageTaskPaneRibbon.cs o ManageTaskPaneRibbon.vb si apre nella finestra di progettazione della barra multifunzione e visualizza una scheda e un gruppo predefiniti.
Nella finestra di progettazione della barra multifunzione fare clic su group1.
Nella finestra Proprietà impostare la proprietà Label su Task Pane Manager.
Nella scheda Controlli barra multifunzione di Office della casella degli strumentitrascinare un controllo ToggleButton nel gruppo Task Pane Manager .
Fare clic su toggleButton1.
Nella finestra Proprietà impostare la proprietà Label su Mostra riquadro attività.
Visualizzare l'interfaccia utente personalizzata della barra multifunzione con messaggi di posta elettronica
Il riquadro attività personalizzato creato in questa procedura dettagliata è progettato per essere visualizzato solo nelle finestre di controllo che contengono i messaggi di posta elettronica. Quindi, impostare le proprietà per visualizzare l'interfaccia utente della barra multifunzione personalizzata solo con queste finestre.
Per visualizzare l'interfaccia utente personalizzata della barra multifunzione con messaggi di posta elettronica
Nella finestra di progettazione della barra multifunzione fare clic sulla barra multifunzione ManageTaskPaneRibbon .
Nella finestra Proprietà fare clic su sull'elenco a discesa accanto a RibbonType, quindi selezionare Microsoft.Outlook.Mail.Compose e Microsoft.Outlook.Mail.Read.
Creare una classe per gestire le finestre di controllo e i riquadri attività personalizzati
Esistono diversi casi in cui il componente aggiuntivo VSTO deve identificare il riquadro attività personalizzato associato a un messaggio di posta elettronica specifico. ad esempio:
Quando l'utente chiude un messaggio di posta elettronica. In questo caso, il componente aggiuntivo VSTO deve rimuovere il riquadro attività personalizzato corrispondente per assicurare che le risorse usate dal componente aggiuntivo VSTO vengano pulite correttamente.
Quando l'utente chiude il riquadro attività personalizzato. In questo caso, il componente aggiuntivo VSTO deve aggiornare lo stato dell'interruttore sulla barra multifunzione del messaggio di posta elettronica.
Quando l'utente fa clic sull'interruttore sulla barra multifunzione. In questo caso, il componente aggiuntivo VSTO deve nascondere o visualizzare il riquadro attività corrispondente.
Per consentire al componente aggiuntivo VSTO di tenere traccia del riquadro attività personalizzato associato a ogni messaggio di posta elettronica aperto, creare una classe personalizzata che esegue il wrapping di coppie di Inspector oggetti e CustomTaskPane . Questa classe crea un nuovo oggetto riquadro attività personalizzato per ogni messaggio di posta elettronica ed elimina il riquadro attività personalizzato quando il messaggio di posta elettronica corrispondente viene chiuso.
Per creare una classe per gestire le finestre di controllo e i riquadri attività personalizzati
In Esplora soluzioni, fare clic con il pulsante destro del mouse sul file ThisAddIn.cs o ThisAddIn.vb , quindi fare clic su Visualizza codice.
Aggiungere le istruzioni seguenti all'inizio del file.
Aggiungere il codice seguente al file ThisAddIn.cs o ThisAddIn.vb , al di fuori della classe
ThisAddIn
(per Visual C#, aggiungere questo codice all'interno dello spazio dei nomiOutlookMailItemTaskPane
). La classeInspectorWrapper
gestisce una coppia di oggetti Inspector e CustomTaskPane . La definizione della classe verrà completata nei passaggi successivi.Aggiungere il costruttore seguente dopo il codice aggiunto nel passaggio precedente. Il costruttore crea e inizializza un nuovo riquadro attività personalizzato associato all'oggetto Inspector passato. In C# il costruttore collega anche i gestori eventi all'evento Close dell'oggetto Inspector e all'evento VisibleChanged dell'oggetto CustomTaskPane .
public InspectorWrapper(Outlook.Inspector Inspector) { inspector = Inspector; ((Outlook.InspectorEvents_Event)inspector).Close += new Outlook.InspectorEvents_CloseEventHandler(InspectorWrapper_Close); taskPane = Globals.ThisAddIn.CustomTaskPanes.Add( new TaskPaneControl(), "My task pane", inspector); taskPane.VisibleChanged += new EventHandler(TaskPane_VisibleChanged); }
Aggiungere il metodo seguente dopo il codice aggiunto nel passaggio precedente. Questo metodo è un gestore eventi per l'evento VisibleChanged dell'oggetto CustomTaskPane contenuto nella classe
InspectorWrapper
. Questo codice aggiorna lo stato dell'interruttore quando l'utente apre o chiude il riquadro attività personalizzato.Aggiungere il metodo seguente dopo il codice aggiunto nel passaggio precedente. Questo metodo è un gestore eventi per l'evento Close dell'oggetto Inspector che contiene il messaggio di posta elettronica corrente. Il gestore eventi libera le risorse quando il messaggio di posta elettronica viene chiuso. Il gestore eventi rimuove anche il riquadro attività personalizzato corrente dalla raccolta
CustomTaskPanes
. Ciò consente di evitare più istanze del riquadro attività personalizzato all'apertura del messaggio di posta elettronica successivo.void InspectorWrapper_Close() { if (taskPane != null) { Globals.ThisAddIn.CustomTaskPanes.Remove(taskPane); } taskPane = null; Globals.ThisAddIn.InspectorWrappers.Remove(inspector); ((Outlook.InspectorEvents_Event)inspector).Close -= new Outlook.InspectorEvents_CloseEventHandler(InspectorWrapper_Close); inspector = null; }
Aggiungere il codice seguente dopo il codice aggiunto nel passaggio precedente. Più avanti in questa procedura dettagliata, questa proprietà verrà chiamata da un metodo nell'interfaccia utente della barra multifunzione personalizzata per visualizzare o nascondere il riquadro attività personalizzato.
Inizializzare e pulire le risorse usate dal componente aggiuntivo
Aggiungere il codice alla classe ThisAddIn
per inizializzare il componente aggiuntivo VSTO quando viene caricato e per pulire le risorse usate dal componente aggiuntivo VSTO quando viene scaricato. Inizializzare il componente aggiuntivo VSTO configurando un gestore eventi per l'evento NewInspector e passando tutti i messaggi di posta elettronica esistenti a questo gestore eventi. Quando il componente aggiuntivo VSTO viene scaricato, rimuovere il gestore eventi e pulire gli oggetti usati dal componente aggiuntivo VSTO.
Per inizializzare e pulire le risorse usate dal componente aggiuntivo VSTO
Nel file ThisAddIn.cs o ThisAddIn.vb individuare la definizione della classe
ThisAddIn
.Aggiungere le seguenti dichiarazioni alla classe
ThisAddIn
:Il campo
inspectorWrappersValue
contiene tutti gli oggetti Inspector eInspectorWrapper
gestiti dal componente aggiuntivo VSTO.Il campo
inspectors
gestisce un riferimento alla raccolta di finestre di controllo nell'istanza Outlook corrente. Questo riferimento impedisce al Garbage Collector di liberare la memoria che contiene il gestore eventi per l'evento NewInspector , che verrà dichiarato nel passaggio successivo.
Sostituire il metodo
ThisAddIn_Startup
con il codice seguente. Questo codice collega un gestore eventi all'evento NewInspector e passa tutti gli oggetti Inspector esistenti al gestore eventi. Se l'utente carica il componente aggiuntivo VSTO dopo che Outlook è già in esecuzione, il componente aggiuntivo VSTO usa queste informazioni per creare riquadri attività personalizzati per tutti i messaggi di posta elettronica già aperti.private void ThisAddIn_Startup(object sender, System.EventArgs e) { inspectors = this.Application.Inspectors; inspectors.NewInspector += new Outlook.InspectorsEvents_NewInspectorEventHandler( Inspectors_NewInspector); foreach (Outlook.Inspector inspector in inspectors) { Inspectors_NewInspector(inspector); } }
Sostituire il metodo
ThisAddIn_ShutDown
con il codice seguente. Questo codice rimuove il gestore eventi NewInspector e pulisce gli oggetti usati dal componente aggiuntivo VSTO.Aggiungere il gestore eventi NewInspector seguente alla classe
ThisAddIn
. Se un nuovo Inspector contiene un messaggio di posta elettronica, il metodo crea un'istanza di un nuovoInspectorWrapper
oggetto per gestire la relazione tra il messaggio di posta elettronica e il riquadro attività corrispondente.Aggiungere la proprietà seguente alla classe
ThisAddIn
. Questa proprietà espone il campoinspectorWrappersValue
privato al codice esterno alla classeThisAddIn
.
Checkpoint
Compilare il progetto per verificare l'assenza di errori.
Per compilare il progetto
- In Esplora soluzionifare clic con il pulsante destro del mouse sul progetto OutlookMailItemTaskPane , quindi fare clic su Compila. Verificare che il progetto venga compilato senza errori.
Sincronizzare l'interruttore della barra multifunzione con il riquadro attività personalizzato
L'interruttore risulterà premuto quando il riquadro attività è visibile e non premuto quando il riquadro attività è nascosto. Per sincronizzare lo stato dell'interruttore con il riquadro attività personalizzato, modificare il gestore eventi Click dell'interruttore.
Per sincronizzare il riquadro attività personalizzato con l'interruttore
Nella finestra di progettazione della barra multifunzione fare doppio clic sull'interruttore Mostra riquadro attività .
Visual Studio genera automaticamente un gestore eventi denominato
toggleButton1_Click
, che gestisce l'evento Click dell'interruttore. Visual Studio apre anche il file ManageTaskPaneRibbon.cs o ManageTaskPaneRibbon.vb nell'editor di codice.Aggiungere le istruzioni seguenti nella parte superiore del file ManageTaskPaneRibbon.cs o ManageTaskPaneRibbon.vb .
Sostituire il gestore eventi
toggleButton1_Click
con il codice seguente. Quando un utente fa clic sull'interruttore, questo metodo nasconde o visualizza il riquadro attività personalizzato associato alla finestra di controllo corrente.private void toggleButton1_Click(object sender, RibbonControlEventArgs e) { Outlook.Inspector inspector = (Outlook.Inspector)e.Control.Context; InspectorWrapper inspectorWrapper = Globals.ThisAddIn.InspectorWrappers[inspector]; CustomTaskPane taskPane = inspectorWrapper.CustomTaskPane; if (taskPane != null) { taskPane.Visible = ((RibbonToggleButton)sender).Checked; } }
Testare il progetto
Quando si avvia il debug del progetto, viene aperto Outlook e viene caricato il componente aggiuntivo VSTO. Il componente aggiuntivo VSTO visualizza un'istanza univoca del riquadro attività personalizzato con ogni messaggio di posta elettronica aperto. Creare diversi nuovi messaggi di posta elettronica per testare il codice.
Per testare il componente aggiuntivo VSTO
Premere F5.
In Outlook fare clic su Nuovo per creare un nuovo messaggio di posta elettronica.
Sulla barra multifunzione del messaggio di posta elettronica fare clic sulla scheda Componenti aggiuntivi e quindi sul pulsante Mostra riquadro attività.
Verificare che venga visualizzato un riquadro attività con il titolo My task pane (Il mio riquadro attività) con il messaggio di posta elettronica.
Nella casella di testo del riquadro attività digitare First task pane .
Chiudi il riquadro dell'attività.
Verificare che lo stato del pulsante Mostra riquadro attività sia cambiato in modo che non venga più premuto.
Fare di nuovo clic sul pulsante Mostra riquadro attività .
Verificare che il riquadro attività si apra e che la casella di testo contenga ancora la stringa First task pane.
In Outlook fare clic su Nuovo per creare un secondo messaggio di posta elettronica.
Sulla barra multifunzione del messaggio di posta elettronica fare clic sulla scheda Componenti aggiuntivi e quindi sul pulsante Mostra riquadro attività.
Verificare che un riquadro attività con il titolo Il riquadro attività sia visualizzato con il messaggio di posta elettronica e che la casella di testo in questo riquadro attività sia vuota.
Nella casella di testo del riquadro attività digitare Second task pane .
Impostare lo stato attivo sul primo messaggio di posta elettronica.
Verificare che il riquadro attività associato a questo messaggio di posta elettronica visualizzi ancora il riquadro Attività Primo nella casella di testo.
Il componente aggiuntivo VSTO gestisce anche scenari più avanzati che è possibile provare. Ad esempio, è possibile testare il comportamento quando si visualizzano i messaggi di posta elettronica usando i pulsanti Elemento successivo e Elemento precedente. È anche possibile testare il comportamento quando si scarica il componente aggiuntivo VSTO, aprire diversi messaggi di posta elettronica e quindi ricaricare il componente aggiuntivo VSTO.
Passaggi successivi
Per altre informazioni su come creare i riquadri attività personalizzati, vedere gli argomenti seguenti:
Creare un riquadro attività personalizzato in un componente aggiuntivo VSTO per un'applicazione diversa. Per altre informazioni sulle applicazioni che supportano riquadri attività personalizzati, vedere Riquadri attività personalizzati.
Automatizzare un'applicazione di Microsoft Office usando un riquadro attività personalizzato. Per altre informazioni, vedere Procedura dettagliata: Automatizzare un'applicazione da un riquadro attività personalizzato.
Creare un pulsante della barra multifunzione in Excel da usare per visualizzare o nascondere un riquadro attività personalizzato. Per altre informazioni, vedere Procedura dettagliata: Sincronizzare un riquadro attività personalizzato con un pulsante della barra multifunzione.
Contenuto correlato
- Riquadri attività personalizzati
- Procedura: Aggiungere un riquadro attività personalizzato a un'applicazione
- Procedura dettagliata: Automatizzare un'applicazione da un riquadro attività personalizzato
- Procedura dettagliata: Sincronizzare un riquadro attività personalizzato con un pulsante della barra multifunzione
- Panoramica della barra multifunzione
- Panoramica del modello a oggetti di Outlook
- Accedere alla barra multifunzione in fase di esecuzione