更新您要移轉至 .NET Framework 4 或 .NET Framework 4.5 之 Outlook 專案中的表單區域
如果 Outlook 增益集專案的目標 Framework 與表單區域的變更為 .NET Framework 4 或 .NET Framework 4.5,就必須進行一些變更向產生的表單區域程式碼以及執行個體化特定表單區域類別在執行階段中的所有程式碼。
更新產生的表單區域程式碼
如果專案的目標 Framework 變更為 .NET Framework 4 或 .NET Framework 4.5,您必須變更產生的表單區域程式碼。您對 Visual Studio 中設計的表單區域所做的變更,與您對從 Outlook 匯入的表單區域所做的變更並不相同。如需這些表單區域類型之間差異的詳細資訊,請參閱建立 Outlook 表單區域。
更新您在 Visual Studio 中所設計表單區域產生的程式碼
在程式碼編輯器中開啟表單區域程式碼後置檔案。此檔案的名稱為 YourFormRegion.Designer.cs 或 YourFormRegion.Designer.vb。若要查看 Visual Basic 專案中的這個檔案,請按一下 [方案總管] 中的 [顯示所有檔案] 按鈕。
修改表單區域類別的宣告,使其衍生自 FormRegionBase 而不是 Microsoft.Office.Tools.Outlook.FormRegionControl。
修改表單區域類別的建構函式,如下列程式碼範例所示。
下列程式碼範例會顯示目標為 .NET Framework 3.5 的專案中,表單區域類別的建構函式。
Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion) MyBase.New(formRegion) Me.InitializeComponent() End Sub
public FormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion) : base(formRegion) { this.InitializeComponent(); }
下列程式碼範例會顯示目標為 .NET Framework 4 的專案中,表單區域類別的建構函式。
Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion) MyBase.New(Globals.Factory, formRegion) Me.InitializeComponent() End Sub
public FormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion) : base(Globals.Factory, formRegion) { this.InitializeComponent(); }
修改 InitializeManifest 方法的簽章,如下所示。確定您未修改方法中的程式碼;此程式碼代表您在設計工具中套用的表單區域設定。在 Visual C# 專案中,您必須展開名為 Form Region Designer generated code 的區域才能查看此方法。
下列程式碼範例會顯示目標為 .NET Framework 3.5 的專案中 InitializeManifest 方法的簽章。
Private Shared Sub InitializeManifest(ByVal manifest As Microsoft.Office.Tools.Outlook.FormRegionManifest) ' Do not change code in this method. End Sub
private static void InitializeManifest(Microsoft.Office.Tools.Outlook.FormRegionManifest manifest) { // Do not change code in this method. }
下列程式碼範例會顯示目標為 .NET Framework 4 的專案中 InitializeManifest 方法的簽章。
Private Shared Sub InitializeManifest(ByVal manifest As Microsoft.Office.Tools.Outlook.FormRegionManifest, ByVal factory As Microsoft.Office.Tools.Outlook.Factory) ' Do not change code in this method. End Sub
private static void InitializeManifest(Microsoft.Office.Tools.Outlook.FormRegionManifest manifest, Microsoft.Office.Tools.Outlook.Factory factory) { // Do not change code in this method. }
將新的 Outlook 表單區域項目加入至專案。開啟新表單區域的程式碼後置檔案,在檔案中尋找 YourNewFormRegionFactory 和 WindowFormRegionCollection 類別,然後將這些類別複製到剪貼簿。
刪除您加入至專案的新表單區域。
在您要更新以便在改變目標的專案中使用之表單區域的程式碼後置檔案中,尋找 YourOriginalFormRegionFactory 和 WindowFormRegionCollection 類別,並且將這兩個類別取代為您從新的表單區域複製的程式碼。
在 YourNewFormRegionFactory 和 WindowFormRegionCollection 類別中搜尋 YourNewFormRegion 類別的所有參考,並且將每一個參考變更為 YourOriginalFormRegion 類別。例如,如果您要更新的表單區域命名為 SalesDataFormRegion,而您在步驟 5 中建立的新表單區域命名為 FormRegion1,則將 FormRegion1 的所有參考變更為 SalesDataFormRegion。
更新您從 Outlook 匯入之表單區域產生的程式碼
在程式碼編輯器中開啟表單區域程式碼後置檔案。此檔案的名稱為 YourFormRegion.Designer.cs 或 YourFormRegion.Designer.vb。若要查看 Visual Basic 專案中的這個檔案,請按一下 [方案總管] 中的 [顯示所有檔案] 按鈕。
修改表單區域類別的宣告,使其衍生自 ImportedFormRegionBase 而不是 Microsoft.Office.Tools.Outlook.ImportedFormRegion。
修改表單區域類別的建構函式,如下列程式碼範例所示。
下列程式碼範例會顯示目標為 .NET Framework 3.5 的專案中,表單區域類別的建構函式。
Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion) MyBase.New(formRegion) End Sub
public ImportedFormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion) : base(formRegion) { this.FormRegionShowing += new System.EventHandler(this.TaskFormRegion_FormRegionShowing); this.FormRegionClosed += new System.EventHandler(this.TaskFormRegion_FormRegionClosed); }
下列程式碼範例會顯示目標為 .NET Framework 4 的專案中,表單區域類別的建構函式簽章。
Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion) MyBase.New(Globals.Factory, formRegion) End Sub
public ImportedFormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion) : base(Globals.Factory, formRegion) { this.FormRegionShowing += new System.EventHandler(this.TaskFormRegion_FormRegionShowing); this.FormRegionClosed += new System.EventHandler(this.TaskFormRegion_FormRegionClosed); }
針對在表單區域類別中初始化控制項的 InitializeControls 方法中的每一個程式碼行修改程式碼,如下所示。
下列程式碼範例會顯示如何在目標為 .NET Framework 3.5 的專案中初始化控制項。在此程式碼中,GetFormRegionControl 方法擁有的型別參數會指定傳回的控制項型別。
Me.olkTextBox1 = Me.GetFormRegionControl(Of Microsoft.Office.Interop.Outlook.OlkTextBox)("OlkTextBox1")
this.olkTextBox1 = this.GetFormRegionControl<Microsoft.Office.Interop.Outlook.OlkTextBox>("OlkTextBox1");
下列程式碼範例會顯示如何在目標為 .NET Framework 4 的專案中初始化控制項。在此程式碼中,GetFormRegionControl 方法沒有型別參數。您必須將傳回值轉型成要初始化之控制項的型別。
Me.olkTextBox1 = CType(GetFormRegionControl("OlkTextBox1"), Microsoft.Office.Interop.Outlook.OlkTextBox)
this.olkTextBox1 = (Microsoft.Office.Interop.Outlook.OlkTextBox)GetFormRegionControl("OlkTextBox1");
將新的 Outlook 表單區域項目加入至專案。開啟新表單區域的程式碼後置檔案,在檔案中尋找 YourNewFormRegionFactory 和 WindowFormRegionCollection 類別,然後將這些類別複製到剪貼簿。
刪除您加入至專案的新表單區域。
在您要更新以便在改變目標的專案中使用之表單區域的程式碼後置檔案中,尋找 YourOriginalFormRegionFactory 和 WindowFormRegionCollection 類別,並且將這兩個類別取代為您從新的表單區域複製的程式碼。
在 YourNewFormRegionFactory 和 WindowFormRegionCollection 類別中搜尋 YourNewFormRegion 類別的所有參考,並且將每一個參考變更為 YourOriginalFormRegion 類別。例如,如果您要更新的表單區域命名為 SalesDataFormRegion,而您在步驟 5 中建立的新表單區域命名為 FormRegion1,則將 FormRegion1 的所有參考變更為 SalesDataFormRegion。
執行個體化表單區域類別
您必須修改動態執行個體化特定表單區域類別的任何程式碼。在目標為 .NET Framework 3.5 的專案中,您可以直接執行個體化表單區域類別,例如 Microsoft.Office.Tools.Outlook.FormRegionManifest。在以 .NET Framework 4 或 .NET Framework 4.5專案,這些類別是您無法直接執行個體化的介面。
如果您專案的目標 Framework 變更為 .NET Framework 4 或 .NET Framework 4.5,您必須具現化介面使用 Globals.Factory 屬性提供的方法。如需 Globals.Factory 屬性的詳細資訊,請參閱 全域存取 Office 專案中的物件。
下表列出表單區域類型和使用方法具現化以 .NET Framework 4 或 .NET Framework 4.5專案的型別。
型別 |
使用的 Factory 方法 |
---|---|
請參閱
概念
將 Office 方案移轉至 .NET Framework 4 或 .NET Framework 4.5