Tutorial: Diseñar un área de formulario de OutlookWalkthrough: Designing an Outlook Form Region

Las áreas de formulario personalizadas extienden los formularios estándar o personalizados de Microsoft Office Outlook.Custom form regions extend standard or custom Microsoft Office Outlook forms. En este tutorial diseñará un área de formulario personalizada que aparece como una nueva página en la ventana del inspector de un elemento de contacto.In this walkthrough, you will design a custom form region that appears as a new page in the Inspector window of a contact item. 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.This form region displays a map of each address that is listed for the contact, by sending the address information to the Windows Live Local Search Web site. Para obtener información acerca de las áreas de formulario, vea crear áreas de formulario de Outlook.For information about form regions, see Creating Outlook Form Regions.

Aplicación: la información de este tema se aplica a los proyectos de complemento de VSTO para Outlook.Applies to: The information in this topic applies to VSTO add-in projects for Outlook. Para obtener más información, consulte Características disponibles por aplicación y tipo de proyecto de Office.For more information, see Features Available by Office Application and Project Type.

En este tutorial se muestran las tareas siguientes:This walkthrough illustrates the following tasks:

  • Crear un proyecto de complemento de VSTO de OutlookCreating a new Outlook VSTO Add-in project.

  • Agregar un área de formulario al proyecto de complemento de VSTO.Adding a form region to the VSTO Add-in project.

  • Definir el diseño del área de formulario.Designing the layout of the form region.

  • Personalizar el comportamiento del área de formulario.Customizing the behavior of the form region.

  • Probar el área de formulario de Outlook.Testing the Outlook form region.

Nota

Es posible que el equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos.The Visual Studio edition that you have and the settings that you use determine these elements. Para más información, vea Personalizar el IDE de Visual Studio.For more information, see Personalize the Visual Studio IDE.

Requisitos previosPrerequisites

Necesita los componentes siguientes para completar este tutorial:You need the following components to complete this walkthrough:

Crear un proyecto de complemento de VSTO de OutlookCreating a New Outlook VSTO Add-in Project

En primer lugar, cree un proyecto básico de complemento de VSTO.First create a basic VSTO Add-in project.

Para crear un proyecto de complemento de VSTO de OutlookTo create a new Outlook VSTO Add-in project

  1. En Visual StudioVisual Studio, cree un proyecto de complemento de VSTO de Outlook con el nombre MapItAddIn.In Visual StudioVisual Studio, create an Outlook VSTO Add-in project with the name MapItAddIn.

  2. En el cuadro de diálogo Nuevo proyecto , seleccione Crear directorio para la solución.In the New Project dialog box, select Create directory for solution.

  3. Guarde el proyecto en cualquier directorio.Save the project to any directory.

    Para obtener más información, consulta How to: Create Office Projects in Visual Studio.For more information, see How to: Create Office Projects in Visual Studio.

Agregar un área de formulario al proyecto de complemento de VSTO de OutlookAdding a Form Region to the Outlook VSTO Add-in Project

Una solución de complemento de VSTO de Outlook puede contener uno o varios elementos de área de formulario de Outlook.An Outlook VSTO Add-in solution can contain one or more Outlook form region items. Agregar un elemento de área de formulario al proyecto mediante el nueva área de formulario de Outlook asistente.Add a form region item to your project by using the New Outlook Form Region wizard.

Para agregar un área de formulario al proyecto de complemento de VSTO de OutlookTo add a form region to the Outlook VSTO Add-in project

  1. En el Explorador de soluciones, seleccione la MapItAddIn proyecto.In Solution Explorer, select the MapItAddIn project.

  2. En el menú Proyecto , haga clic en Agregar nuevo elemento.On the Project menu, click Add New Item.

  3. En el Agregar nuevo elemento cuadro de diálogo, seleccione área de formulario de Outlook, un nombre al archivo nombre MapIty, a continuación, haga clic en agregar.In the Add New Item dialog box, select Outlook Form Region, name the file MapIt, and then click Add.

    El área de formulario de NewOutlook inicia el Asistente para.The NewOutlook Form Region wizard starts.

  4. En el Seleccione cómo desea crear el área de formulario página, haga clic en diseñar una nueva área de formularioy, a continuación, haga clic en siguiente.On the Select how you want to create the form region page, click Design a new form region, and then click Next.

  5. En el seleccione el tipo de área de formulario que desea crear página, haga clic en independientey, a continuación, haga clic en siguiente.On the Select the type of form region you want to create page, click Separate, and then click Next.

    A independiente área de formulario agrega una nueva página a un formulario de Outlook.A separate form region adds a new page to an Outlook form. Para obtener más información sobre los tipos de áreas de formulario, consulte Creating Outlook Form Regions.For more information about form region types, see Creating Outlook Form Regions.

  6. En el proporcione texto descriptivo y seleccione sus preferencias de presentación página, escriba Map It en el nombre cuadro.On the Supply descriptive text and select your display preferences page, type Map It in the Name box.

    Este nombre aparece en la cinta de opciones de la ventana del inspector cuando se abre el elemento de contacto.This name appears on the Ribbon of the Inspector window when the contact item is open.

  7. Seleccione inspectores que están en modo de redacción y inspectores que están en modo de lecturay, a continuación, haga clic en siguiente.Select Inspectors that are in compose mode and Inspectors that are in read mode, and then click Next.

  8. En el identifique las clases de mensaje que mostrarán esta área de formulario página, desactive mensaje de correo, seleccione póngase en contacto cony, a continuación, haga clic en finalizar.On the Identify the message classes that will display this form region page, clear Mail Message, select Contact, and then click Finish.

    Se agregará un archivo MapIt.cs o MapIt.vb al proyecto.A MapIt.cs or MapIt.vb file is added to your project.

Definir el diseño del área de formularioDesigning the Layout of the Form Region

Desarrolle áreas de formulario visualmente mediante el Diseñador de áreas de formulario.Develop form regions visually by using the form region designer. Puede arrastrar controles administrados a la superficie del Diseñador de áreas de formulario.You can drag managed controls to the form region designer surface. Use el diseñador y el propiedades ventana para ajustar el diseño de controles y apariencia.Use the designer and the Properties window to adjust control layout and appearance.

Para definir el diseño del área de formularioTo design the layout of the form region

  1. En el Explorador de soluciones, expanda la MapItAddIn del proyecto y, a continuación, haga doble clic en MapIt.cs o MapIt.vb para abrir el Diseñador de áreas de formulario.In Solution Explorer, expand the MapItAddIn project, and then double-click MapIt.cs or MapIt.vb to open the Form Region Designer.

  2. Haga clic en el diseñador y, a continuación, haga clic en propiedades.Right-click the designer, and then click Properties.

  3. En el propiedades ventana, establezca tamaño a 664, 469.In the Properties window, set Size to 664, 469.

    De esta forma se garantiza que el área de formulario sea suficientemente grande para mostrar una asignación.This ensures that the form region will be large enough to display a map.

  4. En el menú Ver , haga clic en Cuadro de herramientas.On the View menu, click Toolbox.

  5. Desde el controles comunes pestaña de la cuadro de herramientas, agregue un WebBrowser al área de formulario.From the Common Controls tab of the Toolbox, add a WebBrowser to the form region.

    El WebBrowser mostrará una asignación de cada dirección enumerada para el contacto.The WebBrowser will display a map of each address that is listed for the contact.

Personalizar el comportamiento del área de formularioCustomizing the Behavior of the Form Region

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.Add code to form region event handlers to customize the way a form region behaves at run time. 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.For this form region, the code examines the properties of an Outlook item and determines whether to display the Map It form region. Si muestra el área de formulario, el código se desplaza 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.If it displays the form region, the code navigates to Windows Live Local Search and loads a map of each address listed in the Outlook contact item.

Para personalizar el comportamiento del área de formularioTo customize the behavior of the form region

  1. En el Explorador de soluciones, haga clic en MapIt.cs o MapIt.vb y, a continuación, haga clic en ver código.In Solution Explorer, right click MapIt.cs or MapIt.vb, and then click View Code.

    Se abre MapIt.cs o MapIt.vb en el Editor de código.MapIt.cs or MapIt.vb opens in the Code Editor.

  2. Expanda el generador de áreas de formulario región de código.Expand the Form Region Factory code region.

    Se expone la clase de generador de áreas de formulario llamada MapItFactory.The form region factory class named MapItFactory is exposed.

  3. Agregue el código siguiente al controlador de eventos MapItFactory_FormRegionInitializing.Add the following code to the MapItFactory_FormRegionInitializing event handler. Se llama a este controlador de eventos cuando el usuario abre un elemento de contacto.This event handler is called when the user opens a contact item. El siguiente código determina si el elemento de contacto contiene una dirección.The following code determines whether the contact item contains an address. Si el elemento de contacto no contiene una dirección, este código establece la Cancel propiedad de la FormRegionInitializingEventArgs clase a true y no se muestra el área de formulario.If the contact item does not contain an address, this code sets the Cancel property of the FormRegionInitializingEventArgs class to true and the form region is not displayed. De lo contrario, el complemento de VSTO provoca el evento FormRegionShowing y muestra el área de formulario.Otherwise, the VSTO Add-in raises the FormRegionShowing event and displays the form region.

    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;
    }
    
    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
    
  4. Agregue el código siguiente al controlador de eventos FormRegionShowing.Add the following code to the FormRegionShowing event handler. Este código realiza las tareas siguientes:This code performs the following tasks:

    • Concatena cada dirección del elemento de contacto y crea una cadena de dirección URL.Concatenates each address in the contact item and creates a URL string.

    • Llama al método Navigate del objeto WebBrowser y pasa la cadena de dirección URL como parámetro.Calls the Navigate method of the WebBrowser object and passes the URL string as a parameter.

      El sitio web de búsqueda local aparece en el área de formulario Map It y presenta las direcciones en el bloc de notas.The Local Search Web site appears in the Map It form region and presents each address in the scratch pad.

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

Probar el área de formulario de OutlookTesting the Outlook Form Region

Al ejecutar el proyecto, Visual Studio abrirá Outlook.When you run the project, Visual Studio opens Outlook. Abra un elemento de contacto para ver el área de formulario Map It.Open a contact item to view the Map It form region. El área de formulario Map It aparece como página en el formulario de cualquier elemento de contacto que contenga una dirección.The Map It form region appears as a page in the form of any contact item that contains an address.

Para comprobar el área de formulario Map ItTo test the Map It form region

  1. Presione F5 para ejecutar el proyecto.Press F5 to run the project.

    Se abre Outlook.Outlook opens.

  2. En Outlook, en el inicio , haga clic en nuevos elementosy, a continuación, haga clic en póngase en contacto con.In Outlook, on the Home tab, click New Items, and then click Contact.

  3. En el formulario de contacto, escriba Ann Beebe como el contacto de nombre y, a continuación, especifique las tres direcciones siguientes.In the contact form, type Ann Beebe as the contact name, and then specify the following three addresses.

    Tipo de direcciónAddress Type DirecciónAddress
    BusinessBusiness 4567 Main St. Madrid4567 Main St. Buffalo, NY
    Página principalHome 1234 North St. Madrid1234 North St. Buffalo, NY
    Otros problemasOther 3456 Main St. Seattle, WA3456 Main St. Seattle, WA
  4. Guarde y cierre el elemento de contacto.Save and close the contact item.

  5. Vuelva a abrir la Ann Beebe elemento de contacto.Re-open the Ann Beebe contact item.

  6. En el mostrar grupo de cinta de opciones del elemento, haga clic en Map It para abrir el área de formulario Map It.In the Show group of the item's Ribbon, click Map It to open the Map It form region.

    Aparece el área de formulario Map It y muestra el sitio web de búsqueda local.The Map It form region appears, and displays the Local Search Web site. El Business, inicio, y otros direcciones aparecen en el Bloc de notas.The Business, Home, and Other addresses appear in the scratch pad. En dicho bloc, seleccione la dirección que desea asignar.In the scratch pad, select an address that you want to map.

Pasos siguientesNext Steps

Puede obtener más información sobre cómo personalizar la interfaz de usuario de una aplicación de Outlook en estos temas:You can learn more about how to customize the UI of an Outlook application from these topics:

Vea tambiénSee Also

Obtener acceso a un área de formulario en tiempo de ejecución Accessing a Form Region at Run Time
Crear áreas de formulario de Outlook Creating Outlook Form Regions
Instrucciones para crear áreas de formulario de Outlook Guidelines for Creating Outlook Form Regions
Tutorial: Importar un área de formulario diseñada en Outlook Walkthrough: Importing a Form Region That Is Designed in Outlook
Cómo: agregar un área de formulario a un proyecto de complemento de Outlook How to: Add a Form Region to an Outlook Add-in Project
Asociar un área de formulario a una clase de mensaje de Outlook Associating a Form Region with an Outlook Message Class
Acciones personalizadas en áreas de formulario de Outlook Custom Actions in Outlook Form Regions
Cómo: Impedir que Outlook muestre un área de formularioHow to: Prevent Outlook from Displaying a Form Region