逐步解說:設計 Outlook 窗體區域
自訂的表單區域會擴充標準或自訂的 Microsoft Office Outlook 表單。 在此逐步解說中,您要設計自訂的表單區域,它在連絡人項目的 [偵測器] 視窗中會顯示為新頁面。 這個表單區域會將地址資訊傳送至 Windows Live 當地搜尋網站,顯示連絡人清單中每個地址的對應。 如需表單區域的相關信息,請參閱 建立 Outlook 窗體區域。
適用於: 本主題中的資訊適用於 Outlook 的 VSTO 載入宏專案。 如需詳細資訊,請參閱 Office 應用程式 lication 和項目類型所提供的功能。
本逐步解說將說明下列工作:
建立新的 Outlook VSTO 增益集專案。
在 VSTO 增益集專案中加入表單區域。
設計表單區域的版面配置。
自訂表單區域的行為。
測試 Outlook 表單區域。
注意
在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置: 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱將 Visual Studio IDE 個人化。
必要條件
您需要下列元件才能完成這個逐步解說:
此版 Visual Studio 包含 Microsoft Office Developer Tools。 如需詳細資訊,請參閱 設定計算機來開發 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 窗體區域。
在 [提供描述性文字],然後選取您的顯示喜好設定頁面,在 [名稱] 方塊中輸入 [對應]。
開啟連絡人項目時,這個名稱會出現在 [偵測器] 視窗的功能區上。
選取 處於撰寫模式 的偵測器,以及 處於讀取模式的偵測器,然後按 [ 下一步]。
在 [ 識別將顯示此窗體區域] 頁面的訊息類別上,清除 [郵件訊息],選取 [ 聯繫人],然後按兩下 [ 完成]。
MapIt.cs 或 MapIt.vb 檔案會新增至您的專案。
設計表單區域的版面配置
使用表單區域設計工具以可視化方式開發表單區域。 您可以將 Managed 控制項拖曳至表單區域設計工具介面。 使用設計工具與 [屬性] 視窗來調整控制項配置和外觀。
設計表單區域的版面配置
在 方案總管 中,展開 MapItAddIn 專案,然後按兩下 MapIt.cs 或 MapIt.vb 以開啟表單區域設計工具。
以滑鼠右鍵按兩下設計工具,然後按下 [ 屬性]。
在 [屬性] 視窗中,將 [大小] 設定為 664、469。
這可確保表單區域大到足以顯示地圖。
在 [檢視] 功能表上,按一下 [工具箱]。
從 [工具箱] 的 [通用控件] 索引標籤,將 WebBrowser 新增至窗體區域。
WebBrowser 會顯示聯繫人所列之每個位址的地圖。
自定義表單區域的行為
在表單區域事件處理常式中加入程式碼,以自訂表單區域在執行階段的行為方式。 程式碼會檢查此表單區域的 Outlook 項目屬性,並決定是否要顯示 Map It 表單區域。 如果它顯示表單區域,程式碼會瀏覽至 Windows Live 當地搜尋,並載入 Outlook 連絡人項目中所列的每個地址的對應。
自訂表單區域的行為
在 方案總管 中,以滑鼠右鍵按兩下 MapIt.cs 或 MapIt.vb,然後按兩下 [檢視程式代碼]。
MapIt.cs 或 MapIt.vb 會在程式碼編輯器中開啟。
展開表單 區域 Factory 程式代碼區域。
即會公開名為
MapItFactory
的表單區域 Factory 類別。將下列程式碼加入至
MapItFactory_FormRegionInitializing
事件處理常式。 當使用者開啟連絡人項目時,即會呼叫這個事件處理常式。 下列程式碼會判斷連絡人項目是否包含地址。 如果聯繫人專案不包含位址,此程式代碼會將 類別的 FormRegionInitializingEventArgs 屬性設定Cancel為 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 字串。
呼叫 WebBrowser 物件的Navigate 方法,並將 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 表單區域會顯示為頁面。
測試 Map It 表單區域
按 F5 執行專案。
Outlook 即開啟。
在 Outlook 的 [首頁 ] 索引標籤上,按兩下 [新增專案],然後按兩下 [ 連絡人]。
在聯繫人表單中,輸入 Ann Beebe 作為聯絡人名稱,然後指定下列三個位址。
地址類型 位址 公司 4567 主要聖布法羅, 紐約 首頁 1234 北聖布法羅, 紐約 其他 3456 Main St. Seattle, WA 儲存並關閉連絡人項目。
重新開啟 Ann Beebe 聯繫人專案。
在 Outlook 中,開啟聯繫人通訊錄或在搜尋 人員 中輸入 Ann Beebe,即可在 [尋找] 群組中完成此動作。
在 專案功能區的 [顯示 ] 群組中,按兩下 [對應它] 以開啟 [對應它 ] 表單區域。
Map It 表單區域即出現並顯示當地搜尋網站。 商務、家用和其他位址會出現在臨時板中。 在便條簿中選取想要對應的地址。
下一步
從這些主題,您可以進一步了解如何自訂 Outlook 應用程式的 UI:
- 若要瞭解如何自定義 Outlook 專案的功能區,請參閱 自定義 Outlook 的功能區。