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

Las áreas de formulario personalizadas extienden los formularios estándar o personalizados de Microsoft Office Outlook. 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. 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 del formulario, vea Crear áreas de formulario de Outlook.

Se aplica a: La información de este tema se aplica a los proyectos de complementos de VSTO para Outlook. Para obtener más información, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

En este tutorial se muestran las tareas siguientes:

  • Crear un proyecto de complemento de VSTO de Outlook

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

  • Definir el diseño del área de formulario.

  • Personalizar el comportamiento del área de formulario.

  • Probar el área de formulario de Outlook.

Nota:

Es posible que tu 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 se tenga y la configuración que se utilice determinan estos elementos. Para más información, vea Personalizar el IDE de Visual Studio.

Requisitos previos

Necesitará los componentes siguientes para completar este tutorial:

link to video Para obtener una versión de vídeo de este tema, vea Vídeo cómo: Diseñar un área de formulario de Outlook.

Crear un nuevo proyecto de complemento VSTO de Outlook

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

Para crear un proyecto de complemento de VSTO de Outlook

  1. En Visual Studio, cree un proyecto de complemento vsto de Outlook 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 Office en Visual Studio.

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

Una solución de complemento de VSTO de Outlook puede contener uno o varios elementos de área de formulario de Outlook. Agregue un elemento de área de formulario al proyecto mediante el Asistente para nuevo área de formulario de Outlook.

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

  1. En 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 del formulario de Outlook, asigne el nombre MapIt al archivo y, a continuación, haga clic en Agregar.

    Se inicia el Asistente para área de formulario NewOutlook.

  4. En la página Seleccionar cómo desea crear el área del formulario, haga clic en Diseñar un área de formulario y, a continuación, haga clic en Siguiente.

  5. En la página Seleccionar el tipo de área de formulario que desea crear , haga clic en Separary, a continuación, haga clic 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 área de formulario, vea Crear áreas de formulario de Outlook.

  6. En el texto Descriptivo de la fuente y seleccione la página preferencias de visualización, escriba Asignarlo en el cuadro Nombre .

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

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

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

    Se agrega un archivo MapIt.cs o MapIt.vb al proyecto.

Diseñar el diseño del área del 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. Use el diseñador y la ventana Propiedades para ajustar el diseño y la apariencia del control.

Para definir el diseño del área de formulario

  1. En 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 derecho 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. En la pestaña Controles comunes del Cuadro de herramientas, agregue un WebBrowser al área del formulario.

    WebBrowser mostrará un mapa de cada dirección que aparece para el contacto.

Personalización del comportamiento del área del 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 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.

Para personalizar el comportamiento del área de formulario

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

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

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

    Se expone la clase de generador de áreas de formulario llamada 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 siguiente código 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 Cancel propiedad de la FormRegionInitializingEventArgs clase en true y no se muestra el área del formulario. De lo contrario, el complemento de VSTO provoca el evento FormRegionShowing y muestra el área de formulario.

    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 dirección URL.

    • Llama al método Navigate del objeto WebBrowser y pasa la cadena de dirección 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 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);
      
      }
      

Probar el área del formulario de Outlook

Al ejecutar el proyecto, Visual Studio abrirá 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 F5 para ejecutar el proyecto.

    Se abre Outlook.

  2. En Outlook, en la pestaña Inicio , haga clic en Nuevos elementos y, a continuación, haga clic en Contacto.

  3. En el formulario de contacto, escriba Ann Beebe como nombre de contacto y, a continuación, especifique las tres direcciones siguientes.

    Tipo de dirección Dirección
    Business 4567 Main St. Buffalo, NY
    Inicio 1234 North St. Buffalo, NY
    Otros 3456 Main St. Seattle, WA
  4. Guarde y cierre el elemento de contacto.

  5. Vuelva a abrir el elemento de contacto Ann Beebe .

    En Outlook, esto se puede hacer en el grupo Buscar abriendo la libreta de direcciones para contactos o escribiendo Ann Beebe en Buscar Personas.

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

    Aparece el área de formulario Map It y muestra el sitio web de búsqueda local. Las direcciones Business, Home y Other aparecen en el panel temporal. 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: