Поделиться через


Доступ к области формы во время выполнения

Обновлен: Ноябрь 2007

Применение

Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office.

Тип проекта

  • Проекты уровня приложения

Версия Microsoft Office

  • Outlook 2007

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

Существует возможность написания кода для отображения, скрытия или изменения элементов управления на области формы, а также предоставления пользователям возможности запуска кода из других областей проекта с помощью класса Globals.

Дополнительные сведения о классе Globals см. в разделе Глобальный доступ к объектам в Visual Studio Tools for Office.

Для доступа к областям форм, отображаемым в инспекторах и проводниках, из любого места проекта используется класс Globals. Инспектор — это окно, открываемое в Outlook при выполнении пользователем определенных действий, например создании сообщений электронной почты. Проводник — это окно, в котором отображается содержимое папки, содержащей элементы, например сообщения электронной почты, задачи или встречи.

Доступ к областям формы, отображаемым в определенном окне инспектора Outlook

Для доступа ко всем областям формы, отображаемым в указанном инспекторе Microsoft Outlook, необходимо вызвать свойство FormRegions класса Globals и передать ему объект Inspector, представляющий инспектор, в качестве параметра.

В следующем примере показано, как получить коллекцию областей формы, отображаемых в инспекторе, в котором в данный момент находится фокус. Далее в примере производится доступ к области формы в коллекции с именем formRegion1 и задается текст 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";
}

Доступ к областям формы, отображаемым в определенном окне проводника Outlook

Для доступа ко всем областям формы, отображаемым в указанном проводнике Microsoft Outlook, необходимо вызвать свойство FormRegions класса Globals и передать ему объект Explorer, представляющий проводник, в качестве параметра.

В следующем примере показано, как получить коллекцию областей формы, отображаемых в проводнике, в котором в данный момент находится фокус. Далее в примере производится доступ к области формы в коллекции с именем formRegion1 и задается текст 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";
}

Доступ ко всем областям формы

Для доступа ко всем областям формы, отображаемым во всех инспекторах и проводниках, обратитесь к свойству FormRegions класса Globals.

В следующем примере показано, как получить коллекцию областей формы, отображаемых во всех инспекторах и проводниках. Далее в примере производится доступ к области формы с именем formRegion1 и задается текст 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";
        }
    }

}

Доступ к элементам управления на области формы

Для доступа к элементам управления на области формы с помощью класса Globals необходимо обеспечить доступ к элементам управления со стороны кода вне файла кода области формы.

Области формы, созданные в конструкторе областей формы

Для C# следует изменить модификатор каждого элемента управления, к которым необходимо обеспечить доступ. Для этого необходимо выделить каждый элемент управления в конструкторе областей формы и в окне Свойства изменить свойство Модификаторы на Internal или public. Например, если для textBox1 изменить свойство Модификаторы на Internal, доступ к textBox1 можно получить с помощью строки Globals.FormRegions.FormRegion1.textBox1.

В Visual Basic нет необходимости изменять модификатор.

Импортируемые области формы

При импорте созданной в Outlook области формы модификатор доступа всех элементов управления в области формы меняется на закрытый. Поскольку изменить импортируемую область формы с помощью конструктора областей формы нельзя, изменить модификатор элемента управления в окне Свойства невозможно.

Чтобы обеспечить доступ к элементу управления извне файла кода области формы, следует создать свойство в файле кода области формы для получения этого элемента управления.

Дополнительные сведения о создании свойств в C# см. в разделе Практическое руководство. Объявление и использование свойств чтения и записи (Руководство по программированию в C#).

Дополнительные сведения о создании свойств в Visual Basic см. в разделе Практическое руководство. Добавление полей и свойств в класс.

См. также

Задачи

Пошаговое руководство. Разработка области формы Outlook

Практическое руководство. Добавление области формы в проект надстройки Outlook

Пошаговое руководство. Импорт области формы, созданной в Outlook

Практическое руководство. Отсутствие отображения области формы в Outlook

Практическое руководство. Доступ к элементу Outlook, который отображает область формы

Основные понятия

Рекомендации по созданию областей формы Outlook

Пользовательские действия в областях форм Outlook

Связывание области формы с классом сообщений Outlook

Создание областей форм Outlook

Доступ к ленте во время выполнения