Tutorial: Diseñar un área de formulario de Outlook

Actualización: noviembre 2007

Se aplica a

La información de este tema sólo se aplica a los proyectos y versiones especificados de Visual Studio Tools para Office de Microsoft Office.

Tipo de proyecto

  • Proyectos de nivel de aplicación

Versión de Microsoft Office

  • Outlook 2007

Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto.

Las áreas de formulario personalizadas extienden los formularios estándar o personalizados de Microsoft Office Outlook 2007. En este tutorial diseñará un área de formulario personalizada que aparece como una nueva página en la ventana de inspector de un elemento de contacto. Esta área de formulario muestra una asignación de cada dirección incluida para el contacto, enviando la información de la dirección al sitio web de búsqueda local de Windows Live.

Para obtener información sobre las áreas de formularios, vea Crear áreas de formulario de Outlook.

En este tutorial se muestran las siguientes tareas:

  • Crear un nuevo proyecto de complemento de Outlook.

  • Agregar un área de formulario al proyecto de complemento.

  • Diseñar el área de formulario.

  • Personalizar el comportamiento del área de formulario.

  • Comprobar el área de formulario de Outlook.

Nota:

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que tenga y la configuración que esté utilizando determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.

Requisitos previos

Necesita los componentes siguientes para completar este tutorial:

  • Visual Studio Tools para Office (componente opcional de Visual Studio 2008 Professional y Visual Studio Team System).

  • Microsoft Office Outlook 2007.

  • Una conexión a Internet para utilizar el servicio de búsqueda local.

Crear un nuevo proyecto de complemento de Outlook

En primer lugar, cree un proyecto de complemento básico.

Para crear un nuevo proyecto de complemento de Outlook

  1. En Visual Studio, cree un proyecto de complemento de Outlook 2007 con el nombre MapItAddIn.

  2. En el cuadro de diálogo Nuevo proyecto, seleccione Crear directorio para la solución.

  3. Guarde el proyecto en cualquier directorio.

    Para obtener más información, vea Cómo: Crear proyectos de Visual Studio para Office.

Agregar un área de formulario al proyecto de complemento de Outlook

Una solución de complemento de Outlook puede incluir uno o varios elementos de área de formulario de Outlook. Agregue un elemento de área de formulario a su proyecto mediante el asistente Nueva área de formulario de Outlook.

Para agregar un área de formulario al proyecto de complemento de Outlook

  1. En el Explorador de soluciones, seleccione el proyecto MapItAddIn.

  2. En el menú Proyecto, haga clic en Agregar nuevo elemento.

  3. En el cuadro de diálogo Agregar nuevo elemento, seleccione Área de formulario de Outlook, asigne al archivo el nombre MapIt y, a continuación, haga clic en Agregar.

    Se inicia el asistente Nueva área de formulario de Outlook.

  4. En la página Seleccione cómo desea crear el área de formulario, haga clic en Diseñar una nueva área de formulario y después en Siguiente.

  5. En la página Seleccione el tipo de área de formulario que desea crear, haga clic en Independiente y, a continuación, en Siguiente.

    Un área de formulario independiente agrega una nueva página a un formulario de Outlook. Para obtener más información sobre los tipos de áreas de formulario, vea Crear áreas de formulario de Outlook.

  6. En la página Proporcione texto descriptivo y seleccione sus preferencias de presentación, escriba Map It en el cuadro Nombre.

    Este nombre aparece en la cinta de opciones de la ventana de inspector cuando se abre el elemento de contacto.

  7. Seleccione Inspectores que están en modo de redacción e Inspectores que están en modo de lectura y, a continuación, haga clic en Siguiente.

  8. En la página Identifique las clases de mensaje que mostrarán esta área de formulario, desactive la opción Mensaje, seleccione Contacto y, a continuación, haga clic en Finalizar.

    Se agregará un archivo MapIt.cs o MapIt.vb al proyecto.

Diseñar el área de formulario

Desarrolle áreas de formulario visualmente mediante el Diseñador de áreas de formulario. Puede arrastrar controles administrados a la superficie del Diseñador de áreas de formulario. Utilice el diseñador y la ventana Propiedades para ajustar el diseño y la apariencia del control.

Para diseñar el área de formulario

  1. En el Explorador de soluciones, expanda el proyecto MapItAddIn y, a continuación, haga doble clic en MapIt.cs o MapIt.vb para abrir el Diseñador de áreas de formulario.

  2. Haga clic con el botón secundario en el diseñador y, a continuación, haga clic en Propiedades.

  3. En la ventana Propiedades, establezca Tamaño en 664, 469.

    De esta forma se garantiza que el área de formulario sea suficientemente grande para mostrar una asignación.

  4. En el menú Ver, haga clic en Cuadro de herramientas.

  5. Agregue un WebBrowser al área de formulario desde la ficha Controles comunes del Cuadro de herramientas.

    El control WebBrowser mostrará una asignación para cada dirección enumerada para el contacto.

Personalizar el comportamiento del área de formulario.

Agregue código a los controladores de eventos del área de formulario para personalizar el comportamiento de un área de formulario en tiempo de ejecución. Para esta área de formulario, el código examina las propiedades de un elemento de Outlook y determina si se va a mostrar el área de formulario Map It. Si muestra el área de formulario, el código navega a la búsqueda local de Windows Live y carga una asignación de cada dirección incluida en el elemento de contacto de Outlook.

Para personalizar el comportamiento del área de formulario

  1. En el Explorador de soluciones, haga clic con el botón secundario en MapIt.cs o MapIt.vb y, a continuación, haga clic en Ver código.

    Se abre MapIt.cs o MapIt.vb en el Editor de código.

  2. Expanda el área de código Generador de áreas de formulario.

    Se expone la clase del generador de áreas de formulario denominada MapItFactory.

  3. Agregue el código siguiente al controlador de eventos MapItFactory_FormRegionInitializing. Se llama a este controlador de eventos cuando el usuario abre un elemento de contacto. El código siguiente determina si el elemento de contacto contiene una dirección. Si el elemento de contacto no contiene una dirección, este código establece la propiedad Cancel de la clase FormRegionInitializingEventArgs en true y no se muestra el área de formulario. De lo contrario, el complemento provoca el evento FormRegionShowing y muestra el área de formulario.

    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. Agregue el código siguiente al controlador de eventos FormRegionShowing. Este código realiza las tareas siguientes:

    • Concatena cada dirección del elemento de contacto y crea una cadena de direcciones URL.

    • Llama al método Navigate del objeto WebBrowser y pasa la cadena de direcciones URL como parámetro.

    El sitio web de búsqueda local aparece en el área de formulario Map It y presenta las direcciones en el bloc de notas.

    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);
    
    }
    

Comprobar el área de formulario de Outlook

Al ejecutar el proyecto, Visual Studio Tools para Office ejecuta el complemento y abre Outlook. Abra un elemento de contacto para ver el área de formulario Map It. El área de formulario Map It aparece como página en el formulario de cualquier elemento de contacto que contenga una dirección.

Para comprobar el área de formulario Map It

  1. Presione F5para ejecutar el proyecto.

    Outlook se abre.

  2. En Outlook, en el menú Archivo, seleccione Nuevo y, a continuación, haga clic en Contacto.

  3. En el formulario del contacto, escriba Ana Díaz como nombre del contacto y, a continuación, especifique las tres direcciones siguientes.

    Tipo de dirección.

    Dirección

    Trabajo

    C/ Araquil 67, Madrid

    Casa

    C/ Moralzarzal 86, Madrid

    Otras

    C/ Romero 33, Sevilla

  4. Guarde el elemento de contacto y ciérrelo.

  5. Vuelva a abrir el elemento de contacto Ana Díaz.

  6. En el grupo Mostrar de la cinta de opciones del elemento, haga clic en Map It para abrir el área de formulario Map It.

    Aparece el área de formulario Map It y muestra el sitio web de búsqueda local. Las direcciones Trabajo, Casa y Otras aparecen en el bloc de notas. En dicho bloc, seleccione la dirección que desea asignar.

Pasos siguientes

Puede obtener más información sobre cómo personalizar la interfaz de usuario de una aplicación de Outlook en estos temas:

Vea también

Tareas

Tutorial: Importar un área de formulario diseñada en Outlook

Cómo: Agregar un área de formulario a un proyecto de complemento de Outlook

Cómo: Impedir que Outlook muestre un área de formulario

Cómo: Obtener acceso al elemento de Outlook que muestra el área del formulario

Conceptos

Acceso a un área de formulario en tiempo de ejecución

Crear áreas de formulario de Outlook

Instrucciones para crear áreas de formulario de Outlook

Asociar un área de formulario a una clase de mensaje de Outlook

Acciones personalizadas en áreas de formulario de Outlook