語言
自訂表單區域會擴充標準或自訂 Microsoft Office Outlook 表單。 在本逐步解說中,您將設計自訂表單區域,該區域會在連絡人項目的 [偵測器] 視窗中顯示為新頁面。 此表單區域會顯示連絡人所列出之每個地址的地圖,這是透過將地址資訊傳送至 Windows Live Local 搜尋網站來完成的。 如需表單區域的相關資訊,請參閱 建立 Outlook 表單區域。
適用於: 本主題中的資訊適用於 Outlook 的 VSTO 增益集專案。 如需詳細資訊,請參閱 Office 應用程式和專案類型所提供的功能。
本逐步解說將說明下列工作:
建立新的 Outlook VSTO 增益集專案。
將表單區域新增至 VSTO 增益集專案。
設計表單區域的版面配置。
自訂表單區域的行為。
測試 Outlook 表單區域。
備註
在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置: 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱將 Visual Studio IDE 個人化。
先決條件
您需要下列組件才能完成本步驟解說:
包含 Microsoft Office 開發人員工具的 Visual Studio 版本。 如需詳細資訊,請參閱 設定電腦以開發 Office 解決方案。
Outlook 2010 或更新版本。
如需本主題的影片版本,請參閱 影片教學:設計 Outlook 表單區域。
建立新的 Outlook VSTO 增益集專案
首先建立基本的 VSTO 增益集專案。
建立新的 Outlook VSTO 增益集專案
在 Visual Studio 中,建立名稱為 MapItAddIn 的 Outlook VSTO 增益集專案。
在 [新增專案 ] 對話方塊中,選取 [ 建立解決方案的目錄]。
將專案儲存至任何目錄。
如需詳細資訊,請參閱 如何:在 Visual Studio 中建立 Office 專案。
將表單區域新增至 Outlook VSTO 增益集專案
Outlook VSTO 增益集解決方案可以包含一或多個 Outlook 表單區域項目。 使用 [ 新增 Outlook 表單區域 ] 精靈,將表單區域項目新增至您的專案。
將表單區域新增至 Outlook VSTO 增益集專案
在 [方案總管] 中,選取 MapItAddIn 專案。
在 [專案] 功能表上,按一下 [新增專案]。
在 [新增項目] 對話方塊中,選取 [Outlook 表單區域],將檔案命名為 MapIt,然後按一下 [新增]。
[NewOutlook 表單區域] 精靈隨即啟動。
在 [ 選取您要建立表單區域的方式 ] 頁面上,按一下 [ 設計新的表單區域],然後按一下 [ 下一步]。
在 [選取您要建立的表單區域類型 ] 頁面上,按一下 [分隔],然後按一下 [下一步]。
個別的表單區域會將新頁面新增至 Outlook 表單。 如需表單區域類型的詳細資訊,請參閱 建立 Outlook 表單區域。
在 提供描述性文字並選取您的顯示喜好設定頁面上,於 名稱方塊中輸入 Map It。
當連絡人項目開啟時,此名稱會出現在 [偵測器] 視窗的功能區上。
選取 處於撰寫模式的 [檢查器] 和 [ 讀取模式的檢查器],然後按一下 [下一步]。
在 [識別將顯示此表單區域的郵件類別 ] 頁面上,清除 [郵件訊息],選取 [連絡人],然後按一下 [完成]。
MapIt.cs或MapIt.vb檔案會新增至您的專案。
設計表單區域的版面配置
使用 表單區域設計工具以視覺化方式開發表單區域。 您可以將受控控制項拖曳至表單區域設計工具介面。 使用設計工具和 [屬性] 視窗來調整控制項版面配置和外觀。
設計表單區域的版面配置
在 [方案總管] 中,展開 MapItAddIn 專案,然後按兩下 MapIt.cs 或 MapIt.vb 以開啟表單區域設計工具。
以滑鼠右鍵按一下設計工具,然後按一下 [屬性]。
在 [屬性] 視窗中,將 [大小] 設定為 664、469。
這可確保表單區域足夠大以顯示地圖。
在 [檢視 ] 功能表上,按一下 [工具箱]。
從 [工具箱] 的 [通用控制項] 索引標籤中,將 WebBrowser 新增至表單區域。
Web瀏覽器將顯示為聯絡人列出的每個地址的地圖。
自訂表單區域的行為
將程式碼新增至表單區域事件處理常式,以自訂表單區域在執行階段的行為方式。 針對此表單區域,程式碼會檢查 Outlook 專案的屬性,並決定是否要顯示 [Map It] 表單區域。 如果顯示表單區域,程式碼會導覽至 Windows Live 地方搜尋,並載入 Outlook 連絡人項目中列出的每個地址的地圖。
自訂表單區域的行為
在 [方案總管] 中,以滑鼠右鍵按一下 [ MapIt.cs ] 或 [MapIt.vb],然後按一下 [ 檢視程式碼]。
MapIt.cs 或 MapIt.vb 會在程式碼編輯器中開啟。
展開 表單區域工廠程式碼區域。
已公開名為
MapItFactory的表單區域處理站類別。將下列程式碼新增至
MapItFactory_FormRegionInitializing事件處理常式。 當使用者開啟連絡人項目時,會呼叫此事件處理常式。 下列程式碼會判斷連絡人項目是否包含地址。 如果連絡人項目不包含地址,則此程式碼會將類別的Cancel屬性設定FormRegionInitializingEventArgs為true,且不會顯示表單區域。 否則,VSTO 增益集會引發FormRegionShowing事件並顯示表單區域。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字串作為參數傳遞。
本地搜尋網站會出現在 Map It 表單區域中,並在便箋本中顯示每個地址。
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。 開啟連絡人項目以檢視 Map It 表單區域。 [地圖] 表單區域會顯示為包含地址的任何連絡人項目形式的頁面。
測試 Map It 表單區域
按 F5 以執行專案。
Outlook 隨即開啟。
在 Outlook 的 [常用] 索引標籤上,按一下 [新增項目],然後按一下 [連絡人]。
在連絡表單中,輸入 Ann Beebe 作為連絡人名稱,然後指定下列三個地址。
地址類型 Address 商務 4567 Main 街 布法羅,紐約州 首頁 1234 北聖布法羅, 紐約 其他 華盛頓州西雅圖主街 3456 號 儲存並關閉連絡人項目。
重新開啟 Ann Beebe 聯絡人項目。
在 Outlook 中,這可以在查找組通過打開聯絡人的地址簿或在搜索人員中輸入 Ann Beebe 來完成。
在項目功能區的 [ 顯示 ] 群組中,按一下 [ 對應它 ] 以開啟 [對應它] 表單區域。
「Map It 表單區域會出現,並顯示 Local Search 網站。」 商務、住家、和其他地址會顯示在便箋本中。 在速記板中,選取您要繪製的地址。
後續步驟
您可以從下列主題深入瞭解如何自訂 Outlook 應用程式的 UI:
- 若要瞭解如何自訂 Outlook 項目的功能區,請參閱 自訂 Outlook 的功能區。