Доступ к области формы во время выполнения
Обновлен: Ноябрь 2007
Применение |
---|
Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office. Тип проекта
Версия Microsoft Office
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
Существует возможность написания кода для отображения, скрытия или изменения элементов управления на области формы, а также предоставления пользователям возможности запуска кода из других областей проекта с помощью класса 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