Пошаговое руководство. Разработка области формы Outlook
Обновлен: Ноябрь 2007
Применение |
---|
Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям Microsoft Office. Тип проекта
Версия Microsoft Office
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
Настраиваемые области форм расширяют стандартные или пользовательские формы Microsoft Office Outlook 2007. В данном пошаговом руководстве будет разработана настраиваемая область формы, которая должна появляться как новая страница в окне инспектора элемента контактов. В этой области формы отображается карта для каждого контактного адреса путем отправки информации об адресе на веб-узел локального поиска Windows Live.
Сведения об областях формы см. в разделе Создание областей форм Outlook.
В данном пошаговом руководстве представлены следующие задачи:
Создание нового проекта надстройки Outlook.
Добавление области формы в проект надстройки.
Разработка структуры этой области формы.
Настройка поведения этой области формы.
Тестирование области формы Outlook.
Примечание. |
---|
На компьютере могут отображаться имена или расположения некоторых элементов пользовательского интерфейса Visual Studio, отличающиеся от указанных в дальнейших инструкциях. Эти элементы определяются используемой версией Visual Studio и ее параметрами. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Обязательные компоненты
Для выполнения инструкций данного пошагового руководства необходимы следующие компоненты:
Visual Studio Tools for Office (необязательный компонент Visual Studio 2008 Professional и Visual Studio Team System).
Microsoft Office Outlook 2007.
Подключение к сети Интернет для использования службы локального поиска.
Создание нового проекта надстройки Outlook
Сначала создается основной проект надстройки.
Создание нового проекта надстройки Outlook
В Visual Studio создайте проект надстройки Outlook 2007 с именем MapItAddIn.
В диалоговом окне Создание проекта выберите команду Создать каталог для решения.
Сохраните проект в любом каталоге.
Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Visual Studio Tools for Office.
Добавление области формы в проект надстройки 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 Tools for Office запускает надстройку и открывает Outlook. Чтобы увидеть область формы "Сопоставление", необходимо открыть элемент контактов. Область формы "Сопоставление" появляется как страница в форме каждого элемента контактов, содержащего адрес.
Тестирование области формы "Сопоставление"
Нажмите клавишу F5 для запуска проекта.
Откроется приложение Outlook.
В Outlook в меню Файл переместите указатель мыши на Создать и нажмите Контакт.
В форме контактов введите имя контакта Анна Белова, а затем укажите следующие три адреса.
Тип адреса
Адрес
Рабочий
г. Москва, ул. Профсоюзная, 50
Домашний
г. Москва, ул. Зеленая, 123-45
Другой
г. Таруса Калужской обл., ул. Цветаевой, 12
Сохраните и закройте элемент контактов.
Снова откройте элемент контактов Анна Белова.
В группе Показать ленты элемента нажмите Сопоставление, чтобы открыть область формы "Сопоставление".
Появляется область формы "Сопоставление", и отображает веб-узел локального поиска. В блокноте появляются адреса Рабочий, Домашний и Другой. Выберите в блокноте адрес, который требуется сопоставить.
Следующие действия
Дополнительные сведения о настройке пользовательского интерфейса приложения Outlook см. в следующих разделах:
- Дополнительные сведения о настройке ленты элемента Outlook см. в разделе Настройка ленты для Outlook.
См. также
Задачи
Пошаговое руководство. Импорт области формы, созданной в Outlook
Практическое руководство. Добавление области формы в проект надстройки Outlook
Практическое руководство. Отсутствие отображения области формы в Outlook
Практическое руководство. Доступ к элементу Outlook, который отображает область формы
Основные понятия
Доступ к области формы во время выполнения
Создание областей форм Outlook
Рекомендации по созданию областей формы Outlook