Obtener acceso a un área de formulario en tiempo de ejecuciónAccess a form region at runtime

Se aplica aApplies to
La información de este tema solamente se aplica a los siguientes tipos de proyectos y versiones de Microsoft Office.The information in this topic applies only to the following project types and versions of Microsoft Office. Para obtener más información, consulte características disponibles por tipo de aplicación y el proyecto de Office.For more information, see Features available by Office application and project type.

Tipo de proyectoProject type

: Proyectos de complemento de VSTO- VSTO Add-in projects

Versión de Microsoft OfficeMicrosoft Office version

- Outlook 2010Outlook 2010

Utilice la clase Globals para acceder a áreas del formulario desde cualquier lugar dentro del proyecto de Outlook.Use the Globals class to access form regions from anywhere within your Outlook project. Para obtener más información sobre la Globals de clases, consulte acceso Global a objetos en los proyectos de Office.For more information about the Globals class, see Global access to objects in Office projects.

Se aplica a: la información de este tema se aplica a VSTO agregar-en los proyectos de 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 tipo de aplicación y el proyecto de Office.For more information, see Features available by Office application and project type.

Áreas de formulario de Access que aparecen en una ventana específica del Inspector de OutlookAccess form regions that appear in a specific Outlook Inspector window

Para acceder a todas las áreas del formulario que aparecen en un Inspector de Outlook concreto, llame a la propiedad FormRegions de la clase Globals y pase un objeto Microsoft.Office.Interop.Outlook.Inspector que represente el Inspector.To access all form regions that appear in a specific Outlook Inspector, call the FormRegions property of the Globals class and pass in an Microsoft.Office.Interop.Outlook.Inspector object that represents the Inspector.

El ejemplo siguiente obtiene la colección de áreas del formulario que aparecen en el Inspector que tiene actualmente el foco.The following example gets the collection of form regions that appear in the Inspector that currently has focus. Después, este ejemplo accede a un área del formulario de la colección denominada formRegion1 y establece el texto que aparece en un cuadro de texto como Hello World.This example then accesses a form region in the collection named formRegion1 and sets the text that appears in a text box to 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";
}

Áreas de formulario de Access que aparecen en una ventana del explorador de Outlook específicaAccess form regions that appear in a specific Outlook Explorer window

Para acceder a todas las áreas del formulario que aparecen en un Explorador de Outlook concreto, llame a la propiedad FormRegions de la clase Globals y pase un objeto Microsoft.Office.Interop.Outlook.Explorer que represente el explorador.To access all form regions that appear in a specific Outlook Explorer, call the FormRegions property of the Globals class and pass in an Microsoft.Office.Interop.Outlook.Explorer object that represents the Explorer.

El ejemplo siguiente obtiene la colección de áreas del formulario que aparecen en el explorador que tiene actualmente el foco.The following example gets the collection of form regions that appear in the Explorer that currently has focus. Después, este ejemplo accede a un área del formulario de la colección denominada formRegion1 y establece el texto que aparece en un cuadro de texto como Hello World.This example then accesses a form region in the collection named formRegion1 and sets the text that appears in a text box to 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";
}

Tener acceso a todas las áreas de formularioAccess all form regions

Para acceder a todas las áreas del formulario que aparecen en todos los exploradores e inspectores, llame a la propiedad FormRegions de la clase Globals .To access all form regions that appear in all Explorers and all Inspectors, call the FormRegions property of the Globals class.

El ejemplo siguiente obtiene la colección de áreas del formulario que aparecen en todos los exploradores e inspectores.The following example gets the collection of form regions that appear in all Explorers and all Inspectors. En este ejemplo accede entonces a un área del formulario denominada formRegion1 y establece el texto que aparece en un cuadro de texto como Hello World.This example then accesses a form region named formRegion1 and sets the text that appears in a text box to 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";
        }
    }

}

Controles de acceso en un área de formularioAccess controls on a form region

Para acceder a los controles en un área de formulario mediante la clase Globals , debe conseguir que los controles sean accesibles para el código de fuera del archivo de código del área del formulario.To access controls on a form region by using the Globals class, you must make the controls accessible to code outside of the form region code file.

Áreas de formulario diseñadas en el Diseñador de áreas de formularioForm regions designed in the form region designer

En C#, cambie el modificador de cada control al que quiera tener acceso.For C#, change the modifier of each control that you want to access. Para ello, seleccione cada uno de los controles en el diseñador de áreas del formulario y cambie la propiedad Modificadores a Internos o Públicos en la ventana Propiedades .To do this, select each control in the form region designer and change the Modifiers property to Internal or public in the Properties window. Por ejemplo, si cambia la propiedad Modificador de textBox1 a Interno, puede acceder a textBox1 si escribe Globals.FormRegions.FormRegion1.textBox1.For example, if you change the Modifier property of textBox1 to Internal, you can access textBox1 by typing Globals.FormRegions.FormRegion1.textBox1.

En Visual Basic no es necesario cambiar el modificador.For Visual Basic, you do not need to change the modifier.

Áreas del formulario importadasImported form regions

Al importar un área del formulario que se diseñó en Outlook, el modificador de acceso de cada control en el área del formulario pasa a ser privado.When you import a form region that was designed in Outlook, the access modifier of each control on the form region becomes private. Como no se puede usar el diseñador de áreas del formulario para modificar un área del formulario importada, no hay ninguna manera de cambiar el modificador de un control en la ventana Propiedades .Because you cannot use the form region designer to modify an imported form region, there is no way to change the modifier of a control in the Properties window.

Para habilitar el acceso a un control desde fuera del archivo de código del área del formulario, cree una propiedad en el archivo de código del área del formulario que devuelva dicho control.To enable access to a control from outside the form region code file, create a property in the form region code file to return that control.

Para obtener más información acerca de cómo crear propiedades en C#, vea Cómo: declarar y usar leer escribir propiedades (C# Guía de programación).For more information about how to create properties in C#, see How to: Declare and use read write properties (C# programming guide).

Para obtener más información acerca de cómo crear propiedades en Visual Basic, consulte Cómo: crear una propiedad (Visual Basic).For more information about how to create properties in Visual Basic, see How to: Create a property (Visual Basic).

Vea tambiénSee also

Instrucciones para crear áreas de formulario de Outlook Guidelines to create Outlook form regions
Tutorial: Diseñar un área de formulario de Outlook Walkthrough: Design an Outlook form region
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
Acciones personalizadas en áreas de formulario de Outlook Custom actions in Outlook form regions
Asociar un área de formulario a una clase de mensaje de Outlook Associate a form region with an Outlook message class
Tutorial: Importar un área de formulario diseñada en Outlook Walkthrough: Import a form region that is designed in Outlook
Cómo: impedir que Outlook muestre un área de formulario How to: Prevent Outlook from displaying a form region
Crear áreas de formulario de Outlook Create Outlook form regions
Obtener acceso a la cinta de opciones en tiempo de ejecuciónAccess the Ribbon at runtime