HOW TO:將 Windows Form 控制項加入至 Office 文件
您可以在設計階段,將 Windows Form 控制項加入至 Microsoft Office Excel 和 Microsoft Office Word 文件。 在執行階段,您可以用文件層級自訂和應用程式層級增益集加入控制項。 例如,您可以將 ComboBox 控制項加入至工作表,讓使用者可以從選項清單中進行選取。
**適用於:**本主題中的資訊適用於下列應用程式的文件層級專案和應用程式層級專案:Excel 2007 和 Excel 2010、Word 2007 和 Word 2010。如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能。
本主題將說明下列工作:
在設計階段加入控制項
透過文件層級專案,在執行階段加入控制項
透過應用程式層級增益集,在執行階段加入控制項
如需觀看相關示範影片,請參閱如何:在執行階段將控制項加入至文件介面?(英文)。
在設計階段加入控制項
您可以用幾種方式,透過文件層級專案,於設計階段將 Windows Form 控制項加入至文件。
注意事項 |
---|
您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱 Visual Studio 設定。 |
若要將 Windows Form 控制項拖曳到文件
在 Visual Studio 中建立或開啟 Excel 活頁簿專案或 Word 文件專案,如此才能在設計工具中看到文件。 如需建立專案的詳細資訊,請參閱 HOW TO:在 Visual Studio 中建立 Office 專案。
在 [工具箱] 的 [通用控制項] 索引標籤中,按一下要加入的控制項,並將其拖曳到文件。
注意事項 在 Excel 中選取控制項時,您會在 [資料編輯列] 看到 [=EMBED("WinForms.Control.Host","")]。 這個文字是必要的,不應該刪除。
若要繪製文件上的 Windows Form 控制項
在 Visual Studio 中建立或開啟 Excel 活頁簿專案或 Word 文件專案,如此才能在設計工具中看到文件。 如需建立專案的詳細資訊,請參閱 HOW TO:在 Visual Studio 中建立 Office 專案。
在 [工具箱] 的 [通用控制項] 索引標籤上,按一下要加入的控制項
在文件上,在您希望成為控制項左上角的位置按一下,然後拖曳到希望成為控制項右下角的位置。
控制項會依指定的位置和大小加入至文件。
注意事項 當您在 Excel 中選取控制項時,您會在 [資料編輯列] 看到 [=EMBED("WinForms.Control.Host","")]。 這個文字是必要的,不應該刪除。
若要按一下控制項將 Windows Form 控制項加入至文件
在 Visual Studio 中建立或開啟 Excel 活頁簿專案或 Word 文件專案,如此才能在設計工具中看到文件。 如需建立專案的詳細資訊,請參閱 HOW TO:在 Visual Studio 中建立 Office 專案。
在 [工具箱] 的 [通用控制項] 索引標籤中,按一下要加入的控制項
在文件中,按一下要加入控制項的位置。
控制項會依預設大小加入至文件。
注意事項 在 Excel 中選取控制項時,您會在 [資料編輯列] 看到 [=EMBED("WinForms.Control.Host","")]。 這個文字是必要的,不應該刪除。
若要按兩下控制項將 Windows Form 控制項加入至文件
在 Visual Studio 中建立或開啟 Excel 活頁簿專案或 Word 文件專案,如此才能在設計工具中看到文件。 如需建立專案的詳細資訊,請參閱 HOW TO:在 Visual Studio 中建立 Office 專案。
在 [工具箱] 的 [通用控制項] 索引標籤中,按兩下要加入的控制項。
控制項會加入至文件或現用窗格的中央位置。
注意事項 在 Excel 中選取控制項時,您會在 [資料編輯列] 看到 [=EMBED("WinForms.Control.Host","")]。 這個文字是必要的,不應該刪除。
若要按下 ENTER 鍵將 Windows Form 控制項加入至文件
在 Visual Studio 中建立或開啟 Excel 活頁簿專案或 Word 文件專案,如此才能在設計工具中看到文件。 如需建立專案的詳細資訊,請參閱 HOW TO:在 Visual Studio 中建立 Office 專案。
在 [工具箱] 的 [通用控制項] 索引標籤中,按一下要加入的控制項,然後按下 ENTER 鍵。
控制項會加入至文件或現用窗格的中央位置。
注意事項 在 Excel 中選取控制項時,您會在 [資料編輯列] 看到 [=EMBED("WinForms.Control.Host","")]。 這個文字是必要的,不應該刪除。
透過文件層級專案,在執行階段加入控制項
您可以以程式設計的方式,在執行階段將 Windows Form 控制項加入至文件。 在 Word 中,請使用 ThisDocument 類別之 Controls 屬性的方法。 在 Excel 中,請使用 Sheetn 類別之 Controls 屬性的方法。 每個方法都有數個多載,可讓您以不同方式指定控制項的位置。 如需詳細資訊,請參閱 Windows Form 控制項的 Helper 方法。
如果在執行階段將 Windows Form 控制項加入至文件,當關閉文件時,文件不會保存該控制項。 您可以在下一次開啟文件時重新建立該控制項。 如需詳細資訊,請參閱在執行階段將控制項加入至 Office 文件。
若要在執行階段加入 Windows Form 控制項
使用名為 Add<控制項類別> 的方法 (其中 <控制項類別> 是您要加入的 Windows Form 控制項類別名稱,例如 AddButton())。
下列程式碼範例示範如何透過 Excel 文件層級專案,將 Button 加入至 Sheet1 的 [C5] 儲存格。
Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Startup Dim salesButton As Microsoft.Office.Tools.Excel.Controls.Button salesButton = Me.Controls.AddButton(Me.Range("C5"), "salesButton") salesButton.Text = "Calculate Total Sales" End Sub
private void Sheet1_Startup(object sender, System.EventArgs e) { Microsoft.Office.Tools.Excel.Controls.Button salesButton; salesButton = this.Controls.AddButton(this.get_Range("C5", missing), "salesButton"); salesButton.Text = "Calculate Total Sales"; }
透過應用程式層級增益集,在執行階段加入控制項
您可以以程式設計的方式,在執行階段將 Windows Form 控制項加入至任何開啟的文件。 首先,請產生以開啟之文件或工作表為基礎的主項目。 然後,在 Word 中使用新主項目之 Document.Controls 屬性的方法。 在 Excel 中,則使用新主項目之 Worksheet.Controls 屬性的方法。 每個方法都有數個多載,可讓您以不同方式指定控制項的位置。 如需詳細資訊,請參閱 Windows Form 控制項的 Helper 方法。
如果在執行階段將 Windows Form 控制項加入至文件,當關閉文件時,文件不會保存該控制項。 您可以在下一次開啟文件時重新建立該控制項。 如需詳細資訊,請參閱 在執行階段將控制項加入至 Office 文件。
如需在應用程式層級專案中產生主項目的詳細資訊,請參閱在應用程式層級增益集的執行階段中擴充 Word 文件和 Excel 活頁簿。
若要在執行階段加入 Windows Form 控制項
使用名為 Add<控制項類別> 的方法 (其中 <控制項類別> 是您要加入的 Windows Form 控制項類別名稱,例如 AddButton())。
注意事項 在目標為 .NET Framework 4 的應用程式層級增益集專案中,您必須先加入 Microsoft.Office.Tools.Excel.v4.0.Utilities.dll 或 Microsoft.Office.Tools.Word.v4.0.Utilities.dll 組件的參考,才能存取 Add<控制項類別> 方法。
下列程式碼範例示範如何使用 Word 增益集,將 Button 加入至現用文件的第一個段落。
Dim salesButton As Microsoft.Office.Tools.Word.Controls.Button ' Use the following line of code in projects that target the .NET Framework 4. Dim extendedDocument As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) ' In projects that target the .NET Framework 3.5, use the following line of code. ' Dim extendedDocument As Document = Me.Application.ActiveDocument.GetVstoObject() extendedDocument.Paragraphs(1).Range.InsertParagraphBefore() salesButton = extendedDocument.Controls.AddButton( _ extendedDocument.Paragraphs(1).Range, 75, 18, "salesButton") salesButton.Text = "Calculate Sales"
Microsoft.Office.Tools.Word.Controls.Button salesButton; // Use the following line of code in projects that target the .NET Framework 4. Document extendedDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); // In projects that target the .NET Framework 3.5, use the following line of code. // Document extendedDocument = this.Application.ActiveDocument.GetVstoObject(); extendedDocument.Paragraphs[1].Range.InsertParagraphBefore(); salesButton = extendedDocument.Controls.AddButton( extendedDocument.Paragraphs[1].Range, 75, 18, "salesButton"); salesButton.Text = "Calculate Sales";