Пошаговое руководство. Разработка области формы Outlook
Настраиваемые области форм расширяют стандартные или пользовательские формы Microsoft Office Outlook. В данном пошаговом руководстве будет разработана настраиваемая область формы, которая должна появляться как новая страница в окне инспектора элемента контактов.В этой области формы отображается карта для каждого контактного адреса путем отправки информации об адресе на веб-узел локального поиска Windows Live.Сведения об областях формы см. в разделе Создание областей форм Outlook.
Применение. Сведения этого раздела применяются к проектам уровня приложения для Outlook 2013 и Outlook 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.
В данном пошаговом руководстве рассмотрены следующие задачи:
Создание нового проекта надстройки для Outlook.
Добавление области формы в проект надстройки.
Разработка структуры этой области формы.
Настройка поведения этой области формы.
Тестирование области формы Outlook.
Примечание |
---|
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях.Эти элементы определяются используемым выпуском Visual Studio и его параметрами.Дополнительные сведения см. в разделе Параметры Visual Studio. |
Обязательные компоненты
Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.
-
Выпуск Visual Studio 2012, включающий инструменты разработчика Microsoft Office. Дополнительные сведения см. в разделе [Настройка компьютера для разработки решений Office](bb398242\(v=vs.110\).md).
- Outlook 2013 или Outlook 2010.
Для просмотра видеоверсии этого раздела перейдите по ссылке Видео: создание области формы Outlook (страница может быть на английском языке).
Создание нового проекта надстройки для Outlook
Сначала создается основной проект надстройки.
Создание нового проекта надстройки Outlook
В Visual Studio создайте проект надстройки Outlook с именем MapItAddIn.
В диалоговом окне Новый проект выберите команду Создать каталог для решения.
Сохраните проект в любом каталоге.
Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Office в Visual Studio.
Добавление области формы в проект надстройки Outlook
Решение надстройки Outlook может содержать один или несколько элементов областей форм Outlook.Элемент области формы добавляется в проект с помощью мастера Новая область формы Outlook.
Добавление области формы в проект надстройки Outlook
В Обозревателе решений выберите проект MapItAddIn.
В меню Проект выберите команду Добавить новый элемент.
В диалоговом окне Добавление нового элемента выберите элемент Область формы Outlook, присвойте файлу имя MapIt и нажмите кнопку Добавить.
Запускается мастер Новаяобласть формы Outlook.
На странице Способ создания области формы нажмите Создать новую область формы, а затем нажмите кнопку Далее.
На странице Тип создаваемой области формы выберите тип Отдельная и нажмите кнопку Далее.
Отдельная область формы добавляет новую страницу в форму Outlook.Дополнительные сведения о типах областей формы см. в разделе Создание областей форм Outlook.
На странице Ввод описания и выбор параметров отображения в поле Имя введите Сопоставление.
Это имя будет отображаться в ленте окна инспектора при открытии соответствующего элемента контактов.
Выберите Инспекторы в режиме сообщения и Инспекторы в режиме чтения, затем нажмите кнопку Далее.
На странице Классы сообщений для отображения в области формы снимите флажок Сообщение, поставьте флажок Контакт, а затем нажмите кнопку Готово.
В проект добавится файл MapIt.cs или MapIt.vb.
Разработка структуры области формы.
Визуальная разработка областей форм с помощью конструктора областей форм:Можно перетаскивать управляемые элементы управления на рабочую поверхность конструктора областей форм. Для настройки структуры и внешнего вида элемента управления используется конструктор и окно Свойства.
Разработка структуры области формы
В обозревателе решений разверните проект MapItAddIn, а затем дважды щелкните файл MapIt.cs или MapIt.vb, чтобы открыть конструктор областей форм.
Щелкните правой кнопкой мыши конструктор и нажмите Свойства.
В окне Свойства задайте для свойства Размер значение "664, 469".
Такое значение гарантирует, что размер области формы будет достаточно большим для отображения карты.
В меню Вид выберите пункт Панель элементов.
В панели элементов во вкладке Общие элементы управления добавьте в область формы браузер.
браузер будет отображать карту каждого адреса, включенного в список контактов.
Настройка поведения области формы
Для настройки поведения области формы во время выполнения в обработчики событий области формы добавляется код.Для данной области формы код проверяет свойства элемента Outlook и определяет, должна ли отображаться область формы "Сопоставление".Если область формы отображается, то код переходит в локальный поиск Windows Live и загружает карту для каждого адреса, включенного в элемент контактов Outlook.
Настройка поведения области формы
В обозревателе решений щелкните правой клавишей мыши файл MapIt.cs или MapIt.vb, а затем выберите команду Просмотреть код.
Файл MapIt.cs или MapIt.vb открывается в редакторе кода.
Разверните область кода Производство областей формы.
Будет развернут класс производства областей формы с именем MapItFactory.
В обработчик событий MapItFactory_FormRegionInitializing добавьте следующий код.Этот обработчик событий вызывается, когда пользователь открывает элемент контактов.В следующем коде определяется, содержит ли элемент контактов какой-либо адрес.Если в элементе контактов нет адресов, то код устанавливает для свойства Cancel класса FormRegionInitializingEventArgs значение true, и область формы не отображается.В противном случае надстройка вызывает событие FormRegionShowing и отображает область формы.
Private Sub MapItFactory_FormRegionInitializing(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Outlook.FormRegionInitializingEventArgs) Handles Me.FormRegionInitializing Dim myItem As Outlook.ContactItem = CType(e.OutlookItem, Outlook.ContactItem) If Not (myItem Is Nothing) Then If Not (myItem.BusinessAddress Is Nothing) AndAlso myItem.BusinessAddress.Trim().Length > 0 Or (Not (myItem.HomeAddress Is Nothing) AndAlso myItem.HomeAddress.Trim().Length > 0) Or (Not (myItem.OtherAddress Is Nothing) AndAlso myItem.OtherAddress.Trim().Length > 0) Then Return End If End If e.Cancel = True End Sub
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; }
В обработчик событий FormRegionShowing добавьте следующий код.Этот код выполняет следующие задачи:
Сцепляет каждый адрес в элементе контактов и создает строку URL-адреса.
Вызывает метод Navigate объекта WebBrowser и передает строку URL-адреса в качестве параметра.
В области формы "Сопоставление" появляется веб-узел локального поиска, который представляет каждый адрес в блокноте.
Private Sub MapIt_FormRegionShowing(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing Dim tempLoc As String = "" Dim defaultAddress As String = "" Dim scratchPadAddress As String = "" Dim myItem As Outlook.ContactItem = _ CType(Me.OutlookItem, Outlook.ContactItem) If Not (myItem Is Nothing) Then If Not (myItem.HomeAddress Is Nothing) And _ myItem.HomeAddress.Trim().Length > 0 Then tempLoc = myItem.HomeAddressStreet.Trim() + " " _ + myItem.HomeAddressCity + " " + myItem.HomeAddressState + _ " " + myItem.HomeAddressPostalCode If myItem.HomeAddress = myItem.MailingAddress Then defaultAddress = tempLoc + "_Home" Else scratchPadAddress += "adr." + tempLoc + "_Home~" End If End If If Not (myItem.BusinessAddress Is Nothing) And _ myItem.BusinessAddress.Trim().Length > 0 Then tempLoc = myItem.BusinessAddressStreet.Trim() + " " _ + myItem.BusinessAddressCity + " " + _ myItem.BusinessAddressState + " " + _ myItem.BusinessAddressPostalCode If myItem.BusinessAddress = myItem.MailingAddress Then defaultAddress = tempLoc + "_Business" Else scratchPadAddress += "adr." + tempLoc + "_Business~" End If End If If Not (myItem.OtherAddress Is Nothing) And _ myItem.OtherAddress.Trim().Length > 0 Then tempLoc = myItem.OtherAddressStreet.Trim() + " " + _ myItem.OtherAddressCity + " " + myItem.OtherAddressState + _ " " + myItem.OtherAddressPostalCode If myItem.OtherAddress = myItem.MailingAddress Then defaultAddress = tempLoc + "_Other" Else scratchPadAddress += "adr." + tempLoc + "_Other~" End If End If End If WebBrowser1.Navigate(("http://local.live.com/default.aspx?style=r&where1=" _ + defaultAddress + "&sp=" + scratchPadAddress)) End Sub
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); }
Тестирование области формы Outlook
При запуске проекта Visual Studio открывает приложение Outlook.Чтобы увидеть область формы "Сопоставление", необходимо открыть элемент контактов.Область формы "Сопоставление" появляется как страница в форме каждого элемента контактов, содержащего адрес.
Тестирование области формы "Сопоставление"
Чтобы запустить проект, нажмите клавишу F5.
Открывается приложение Outlook.
В outlook на вкладке Главная, нажмите кнопку Новые элементы и нажмите кнопку Контакт.
В форме контактов введите имя контакта Анна Белова, а затем укажите следующие три адреса.
Тип адреса
Адрес
Рабочий
Центральная ул., д. 123Приозерск, Ленинградская обл.
Главная
Цветочная ул., 34Приозерск, Ленинградская обл.
Другой
Центральная ул., д. 78Псков, Псковская обл.
Сохраните и закройте элемент контактов.
Снова откройте элемент контактов Анна Белова.
В группе Показать ленты элемента нажмите Сопоставление, чтобы открыть область формы "Сопоставление".
Появляется область формы "Сопоставление", и отображает веб-узел локального поиска.В блокноте появляются адреса Рабочий, Домашний и Другой.Выберите в блокноте адрес, который требуется сопоставить.
Следующие действия
Дополнительные сведения о настройке пользовательского интерфейса приложения Outlook см. в следующих разделах:
- Дополнительные сведения о настройке ленты элемента Outlook см. в разделе Настройка ленты для Outlook.
См. также
Задачи
Пошаговое руководство. Импорт области формы, созданной в Outlook
Практическое руководство. Добавление области формы в проект надстройки Outlook
Практическое руководство. Отсутствие отображения области формы в Outlook
Основные понятия
Доступ к области формы во время выполнения
Рекомендации по созданию областей формы Outlook
Связывание области формы с классом сообщений Outlook
Пользовательские действия в областях форм Outlook