Compartir a través de


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

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.

Puede escribir código para mostrar, ocultar o modificar los controles de un área de formulario y permitir a los usuarios ejecutar código de otras áreas en su proyecto utilizando la clase Globals.

Para obtener más información sobre la clase Globals, vea Acceso global a objetos en proyectos de Visual Studio Tools para Office.

Utilice la clase Globals para obtener acceso a las áreas de formulario que aparecen en inspectores y exploradores desde cualquier parte del proyecto. Un inspector es una ventana que se abre en Outlook cuando los usuarios realizan ciertas tareas, como crear mensajes de correo electrónico. Un explorador es una ventana que muestra el contenido de una carpeta que contiene elementos como mensajes de correo electrónico, tareas o citas.

Obtener acceso a áreas de formulario que aparecen en una ventana de inspector específica de Outlook

Para tener acceso a todas las áreas de formulario que aparecen en un inspector concreto de Outlook, llame a la propiedad FormRegions de la clase Globals y pase un objeto Inspector que representa al inspector.

En el ejemplo siguiente se obtiene la colección de áreas de formulario que aparecen en el inspector que tiene el foco en ese momento. A continuación, el ejemplo obtiene acceso a un área de formulario de la colección denominada formRegion1 y establece el texto que aparece en un cuadro de texto en Hello World.

Private Sub Access_Form_Regions_ByInspector()
    Dim formRegions As WindowFormRegionCollection = Globals.FormRegions _
        (Globals.ThisAddIn.Application.ActiveInspector())
    formRegions.FormRegion1.textBox1.Text = "Hello World"
End Sub

private void Access_Form_Regions_ByInspector()
{
    WindowFormRegionCollection formRegions = 
        Globals.FormRegions
            [Globals.ThisAddIn.Application.ActiveInspector()];
    formRegions.FormRegion1.textBox1.Text = "Hello World";
}

Obtener acceso a áreas de formulario que aparecen en una ventana de explorador específica de Outlook

Para tener acceso a todas las áreas de formulario que aparecen en un explorador concreto de Outlook, llame a la propiedad FormRegions de la clase Globals y pase un objeto Explorer que representa al explorador.

En el ejemplo siguiente se obtiene la colección de áreas de formulario que aparecen en el explorador que tiene el foco en ese momento. A continuación, el ejemplo obtiene acceso a un área de formulario de la colección denominada formRegion1 y establece el texto que aparece en un cuadro de texto en Hello World.

Private Sub Access_Form_Regions_ByExplorer()
    Dim formRegions As WindowFormRegionCollection = Globals.FormRegions _
        (Globals.ThisAddIn.Application.ActiveExplorer())
    formRegions.FormRegion1.textBox1.Text = "Hello World"
End Sub
private void Access_Form_Regions_ByExplorer()
{
    WindowFormRegionCollection formRegions =
        Globals.FormRegions
            [Globals.ThisAddIn.Application.ActiveExplorer()];
    formRegions.FormRegion1.textBox1.Text = "Hello World";
}

Obtener acceso a todas las áreas de formulario

Para tener acceso a todas las áreas de formulario que aparecen en todos los exploradores e inspectores, llame a la propiedad FormRegions de la clase Globals.

En el ejemplo siguiente se obtiene la colección de áreas de formulario que aparecen en todos los exploradores e inspectores. A continuación, el ejemplo obtiene acceso a un área de formulario denominada formRegion1 y establece el texto que aparece en un cuadro de texto en Hello World.

Friend Sub Access_All_Form_Regions()
    Dim formRegion As Microsoft.Office.Tools.Outlook.IFormRegion
    For Each formRegion In Globals.FormRegions
        If TypeOf formRegion Is FormRegion1 Then
            Dim formRegion1 As FormRegion1 = _
                CType(formRegion, FormRegion1)
            formRegion1.textBox1.Text = "Hello World"
        End If
    Next formRegion
End Sub
internal void Access_All_Form_Regions()
{
    foreach (Microsoft.Office.Tools.Outlook.IFormRegion formRegion 
        in Globals.FormRegions)
    {
        if (formRegion is FormRegion1)
        {
            FormRegion1 formRegion1 = (FormRegion1)formRegion;
            formRegion1.textBox1.Text = "Hello World";
        }
    }

}

Obtener acceso a los controles de un área de formulario

Para tener acceso a los controles de un área de formulario utilizando la clase Globals, debe hacer que el código que está fuera del archivo de código del área de formulario pueda obtener acceso a los controles.

Áreas de formulario diseñadas en el Diseñador de áreas de formulario

Para C#, cambie el modificador de cada control al que desea obtener acceso. Para ello, seleccione cada control en el Diseñador de áreas de formulario y cambie la propiedad Modifiers a Internal o Public en la ventana Propiedades. Por ejemplo, si cambia la propiedad Modifier de textBox1 a Internal, puede tener acceso a textBox1 escribiendo Globals.FormRegions.FormRegion1.textBox1.

Para Visual Basic, no es necesario cambiar el modificador.

Áreas de formulario importadas

Al importar un área de formulario diseñada en Outlook, el modificador de acceso de cada control del área de formulario pasa a ser privado. Dado que no puede utilizar el Diseñador de áreas de formulario para modificar un área de formulario importada, no existe ninguna forma de cambiar el modificador de un control en la ventana Propiedades.

Para permitir el acceso a un control que esté fuera del archivo de código del área de formulario, cree una propiedad que devuelva dicho control en el archivo de código del área de formulario.

Para obtener más información sobre cómo crear propiedades en C#, vea Cómo: Declarar y utilizar propiedades de lectura y escritura (Guía de programación de C#).

Para obtener más información sobre cómo crear propiedades en Visual Basic, vea Cómo: Agregar campos y propiedades a una clase.

Vea también

Tareas

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

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

Tutorial: Importar un área de formulario diseñada en 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

Instrucciones para crear áreas de formulario de Outlook

Acciones personalizadas en áreas de formulario de Outlook

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

Crear áreas de formulario de Outlook

Acceso a la cinta de opciones en tiempo de ejecución