Procedura dettagliata: progettazione di un'area del modulo di Outlook

Le aree del modulo personalizzate estendono i moduli standard o personalizzati di Microsoft Office Outlook.In questa procedura dettagliata viene spiegato come progettare un'area di modulo personalizzata che viene visualizzata come una pagina nuova nella finestra di controllo di un elemento contatto.Questa area del modulo visualizza una mappa di ogni indirizzo elencato per il contatto, inviando le informazioni sull'indirizzo al sito Web Windows Live Local Search.Per informazioni sulle aree dei moduli, vedere Creazione di aree di modulo di Outlook.

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

In questa procedura dettagliata vengono illustrate le attività seguenti:

  • Creazione di un nuovo progetto di componente aggiuntivo per Outlook.

  • Aggiunta dell'area di modulo al progetto di componente aggiuntivo.

  • Progettazione del layout dell'area di modulo.

  • Personalizzazione del comportamento dell'area di modulo.

  • Test dell'area di modulo di Outlook.

[!NOTA]

Il computer potrebbe mostrare nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti.Questi elementi sono determinati dall'edizione di Visual Studio in uso e dalle impostazioni utilizzate.Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:

-

Una versione di Visual Studio 2012 che include gli strumenti per sviluppatori di Microsoft Office. Per ulteriori informazioni, vedere [Configurazione di un computer per sviluppare soluzioni Office](bb398242\(v=vs.110\).md).
  • Outlook 2013 o Outlook 2010.

Collegamento a video Per una versione video di questo argomento, vedere la procedura video relativa alla progettazione di un'area del modulo di Outlook (la pagina potrebbe essere in inglese).

Creazione di un nuovo progetto di componente aggiuntivo per Outlook

Per prima cosa, creare un progetto di componente aggiuntivo di base.

Per creare un nuovo progetto di componente aggiuntivo per Outlook

  1. In Visual Studio creare un progetto componente aggiuntivo di Outlook con nome MapItAddIn.

  2. Selezionare Crea directory per soluzione nella finestra di dialogo Nuovo progetto.

  3. Salvare il progetto in una directory qualsiasi.

    Per ulteriori informazioni, vedere Procedura: creare progetti di Office in Visual Studio.

Aggiunta di un'area di modulo a un progetto di componente aggiuntivo per Outlook

Una soluzione componente aggiuntivo per Outlook può contenere uno o più elementi area di modulo di Outlook.Aggiungere un elemento area di modulo al progetto tramite la procedura guidata Nuova area del modulo di Outlook.

Per aggiungere un'area di modulo a un progetto di componente aggiuntivo per Outlook

  1. In Esplora soluzioni selezionare il progetto MapItAddIn.

  2. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  3. Nella finestra di dialogo Aggiungi nuovo elemento selezionare Area del modulo di Outlook, assegnare al file il nome MapIt, quindi scegliere Aggiungi.

    Viene avviata la procedura guidata Nuova area del modulo di Outlook.

  4. Nella pagina Selezionare la modalità di creazione dell'area del modulo, fare clic su Progetta nuova area del modulo e fare clic su Avanti.

  5. Nella pagina Selezionare il tipo di area del modulo da creare selezionare Separa e scegliere Avanti.

    Un'area di modulo separata aggiunge una nuova pagina in un modulo di Outlook.Per ulteriori informazioni sui tipi di area di modulo, vedere Creazione di aree di modulo di Outlook.

  6. Nella casella Nome della pagina Fornire un testo descrittivo e selezionare le preferenze di visualizzazione digitare Map It.

    Questo nome viene visualizzato nella barra multifunzione della finestra di controllo quando l'elemento del contatto viene aperto.

  7. Selezionare Controlli in modalità composizione e Controlli in modalità lettura e fare clic su Avanti.

  8. Nella pagina Identificare le classi di messaggi per la visualizzazione dell'area del modulo, deselezionare Messaggio, selezionare Contatto e fare clic su Fine.

    Un file MapIt.cs o MapIt.vb viene aggiunto al progetto.

Progettazione del layout dell'area di modulo

Sviluppare visivamente le aree di modulo utilizzando Progettazione aree di modulo.È possibile trascinare i controlli gestiti nell'area di Progettazione aree di modulo.Utilizzare la finestra di progettazione e la finestra Proprietà per impostare il layout e l'aspetto del controllo.

Per progettare il layout dell'area di modulo

  1. In Esplora soluzioni, espandere il progetto MapItAddIn e fare doppio clic su MapIt.cs o MapIt.vb per aprire Progettazione aree di modulo.

  2. Fare clic con il pulsante destro del mouse sulla finestra di progettazione e scegliere Proprietà.

  3. Nella finestra Proprietà impostare Dimensione su 664, 469.

    In tal modo l'area del modulo sarà sufficientemente grande per visualizzare una mappa.

  4. Scegliere Casella degli strumenti dal menu Visualizza.

  5. Dalla scheda Controlli comuni della Casella degli strumenti aggiungere un controllo Browser all'area di modulo.

    Il Browser visualizzerà una mappa di ogni indirizzo elencato per il contatto.

Personalizzazione del comportamento dell'area di modulo

Aggiungere il codice ai gestori eventi dell'area di modulo per personalizzare la modalità di comportamento di un'area di modulo in fase di esecuzione.Per questa area di modulo, il codice esamina le proprietà di un elemento di Outlook e determina se visualizzare l'area del modulo Map It.Se visualizza l'area del modulo, il codice passa a Windows Live Local Search e carica una mappa di ogni indirizzo elencato nell'elemento contatto di Outlook.

Per personalizzare il comportamento dell'area di modulo

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su MapIt.cs o MapIt.vb, quindi scegliere Visualizza codice.

    MapIt.cs o MapIt.vb viene aperto nell'editor di codice.

  2. Espandere l'area di codice Factory area del modulo.

    La classe factory dell'area di modulo denominata MapItFactory viene esposta.

  3. Aggiungere il codice seguente al gestore eventi MapItFactory_FormRegionInitializing.Questo gestore eventi viene chiamato quando l'utente apre un elemento contatto.Il codice seguente determina se l'elemento contatto contiene un indirizzo.Se l'elemento contatto non contiene un indirizzo, questo codice imposta la proprietà Cancel della classe FormRegionInitializingEventArgs su true e l'area di modulo non viene visualizzata.In caso contrario, il componente aggiuntivo genera l'evento FormRegionShowing e visualizza l'area di modulo.

    Private Sub MapItFactory_FormRegionInitializing(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Outlook.FormRegionInitializingEventArgs) Handles Me.FormRegionInitializing
    
        Dim myItem As Outlook.ContactItem = CType(e.OutlookItem, Outlook.ContactItem)
    
        If Not (myItem Is Nothing) Then
            If Not (myItem.BusinessAddress Is Nothing) AndAlso myItem.BusinessAddress.Trim().Length > 0 Or (Not (myItem.HomeAddress Is Nothing) AndAlso myItem.HomeAddress.Trim().Length > 0) Or (Not (myItem.OtherAddress Is Nothing) AndAlso myItem.OtherAddress.Trim().Length > 0) Then
                Return
            End If
        End If
    
        e.Cancel = True
    
    End Sub
    
    private void MapItFactory_FormRegionInitializing(object sender,
        Microsoft.Office.Tools.Outlook.FormRegionInitializingEventArgs e)
    {
        Outlook.ContactItem myItem = (Outlook.ContactItem)e.OutlookItem;
    
        if (myItem != null)
        {
            if ((myItem.BusinessAddress != null &&
                    myItem.BusinessAddress.Trim().Length > 0) ||
                (myItem.HomeAddress != null && 
                    myItem.HomeAddress.Trim().Length > 0) ||
                (myItem.OtherAddress != null && 
                    myItem.OtherAddress.Trim().Length > 0))
            {
                return;
            }
        }
    
        e.Cancel = true;
    }
    
  4. Aggiungere il codice seguente al gestore eventi FormRegionShowing.Mediante il codice vengono effettuate le seguenti attività:

    • Concatena ogni indirizzo nell'elemento contatto e crea una stringa URL.

    • Chiama il metodo Navigate dell'oggetto WebBrowser e passaggio della stringa URL come un parametro.

    Il sito Web Local Search viene visualizzato nell'area del modulo Map It e presenta ogni indirizzo nel riquadro di lavoro.

    Private Sub MapIt_FormRegionShowing(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing
        Dim tempLoc As String = ""
        Dim defaultAddress As String = ""
        Dim scratchPadAddress As String = ""
    
        Dim myItem As Outlook.ContactItem = _
            CType(Me.OutlookItem, Outlook.ContactItem)
    
        If Not (myItem Is Nothing) Then
            If Not (myItem.HomeAddress Is Nothing) And _
                myItem.HomeAddress.Trim().Length > 0 Then
                tempLoc = myItem.HomeAddressStreet.Trim() + " " _
                    + myItem.HomeAddressCity + " " + myItem.HomeAddressState + _
                        " " + myItem.HomeAddressPostalCode
                If myItem.HomeAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Home"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Home~"
                End If
            End If
            If Not (myItem.BusinessAddress Is Nothing) And _
                myItem.BusinessAddress.Trim().Length > 0 Then
                tempLoc = myItem.BusinessAddressStreet.Trim() + " " _
                    + myItem.BusinessAddressCity + " " + _
                        myItem.BusinessAddressState + " " + _
                            myItem.BusinessAddressPostalCode
                If myItem.BusinessAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Business"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Business~"
                End If
            End If
            If Not (myItem.OtherAddress Is Nothing) And _
                myItem.OtherAddress.Trim().Length > 0 Then
                tempLoc = myItem.OtherAddressStreet.Trim() + " " + _
                    myItem.OtherAddressCity + " " + myItem.OtherAddressState + _
                        " " + myItem.OtherAddressPostalCode
                If myItem.OtherAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Other"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Other~"
                End If
            End If
        End If
    
        WebBrowser1.Navigate(("http://local.live.com/default.aspx?style=r&where1=" _
            + defaultAddress + "&sp=" + scratchPadAddress))
    
    End Sub
    
    private void MapIt_FormRegionShowing(object sender, EventArgs e)
    {
        string tempLoc = "";
        string defaultAddress = "";
        string scratchPadAddress = "";
    
        Outlook.ContactItem myItem = (Outlook.ContactItem)this.OutlookItem;
    
        if (myItem != null)
        {
            if (myItem.HomeAddress != null && 
                    myItem.HomeAddress.Trim().Length > 0)
            {
                tempLoc = myItem.HomeAddressStreet.Trim() + " " + 
                    myItem.HomeAddressCity + " " + myItem.HomeAddressState + 
                        " " + myItem.HomeAddressPostalCode;
                if (myItem.HomeAddress == myItem.MailingAddress)
                {
                    defaultAddress = tempLoc + "_Home";
                }
                else
                {
                    scratchPadAddress += "adr." + tempLoc + "_Home~";
                }
            }
            if (myItem.BusinessAddress != null && 
                    myItem.BusinessAddress.Trim().Length > 0)
            {
                tempLoc = myItem.BusinessAddressStreet.Trim() + 
                    " " + myItem.BusinessAddressCity + " " + 
                        myItem.BusinessAddressState + " " + 
                            myItem.BusinessAddressPostalCode;
                if (myItem.BusinessAddress == myItem.MailingAddress)
                {
                    defaultAddress = tempLoc + "_Business";
                }
                else
                {
                    scratchPadAddress += "adr." + tempLoc + "_Business~";
                }
            }
            if (myItem.OtherAddress != null && myItem.OtherAddress.Trim().Length > 0)
            {
                tempLoc = myItem.OtherAddressStreet.Trim() + " " + 
                    myItem.OtherAddressCity + " " + myItem.OtherAddressState + 
                        " " + myItem.OtherAddressPostalCode;
                if (myItem.OtherAddress == myItem.MailingAddress)
                {
                    defaultAddress = tempLoc + "_Other";
                }
                else
                {
                    scratchPadAddress += "adr." + tempLoc + "_Other~";
                }
            }
        }
    
        webBrowser1.Navigate("http://local.live.com/default.aspx?style=r&where1=" 
            + defaultAddress + "&sp=" + scratchPadAddress);
    
    }
    

Test dell'area di modulo di Outlook

Quando si esegue il progetto, in Visual Studio viene aperto Outlook.Aprire un elemento contatto per visualizzare l'area del modulo Map It.L'area del modulo Map It viene visualizzata come una pagina nel modulo di qualsiasi elemento contatto contenente un indirizzo.

Per eseguire il test dell'area di modulo Map It

  1. Premere F5 per eseguire il progetto.

    Viene aperto Outlook.

  2. In Outlook, nella scheda Pagina iniziale, scegliere Nuovi elementiquindi fare clic Contatto.

  3. Nel modulo del contatto, digitare Ann Beebe come nome del contatto e specificare i seguenti tre indirizzi.

    Tipo di indirizzo

    Address

    Ufficio

    4567 Main St.Buffalo, NY

    Home

    1234 North St.Buffalo, NY

    Altro

    3456 Main St.Seattle, WA

  4. Salvare e chiudere l'elemento contatto.

  5. Aprire nuovamente l'elemento contatto Ann Beebe.

  6. Nel gruppo Mostra della barra multifunzione dell'elemento, fare clic su Map It per aprire l'area del modulo Map It.

    L'area del modulo Map It viene visualizzata insieme al sito Web Local Search.Gli indirizzi Ufficio, Casa e Altro sono visualizzati nel riquadro di lavoro.Selezionare un indirizzo da mappare nel riquadro di lavoro.

Passaggi successivi

È possibile trovare ulteriori informazioni sulla personalizzazione dell'interfaccia utente di un'applicazione di Outlook nei seguenti argomenti:

Vedere anche

Attività

Procedura dettagliata: importazione di un'area di modulo progettata in Outlook

Procedura: aggiungere un'area del modulo a un progetto di componente aggiuntivo per Outlook

Procedura: impedire la visualizzazione di un'area del modulo in Outlook

Concetti

Accesso a un'area del modulo in fase di esecuzione

Linee guida per la creazione delle aree di modulo di Outlook

Associazione di un'area del modulo a una classe messaggio di Outlook

Azioni personalizzate nelle aree di modulo di Outlook

Altre risorse

Creazione di aree di modulo di Outlook