共用方式為


將 Windows Forms 控制項新增至 Office 文件

您可以在文件層級專案的設計階段中,將 Windows Form 控制項加入 Microsoft Office Excel 和 Microsoft Office Word 文件。 在執行階段,您可以在文件層級自訂和 VSTO 增益集中新增控制項。例如,可以將 ComboBox 控制項新增至工作表,讓使用者可以從選項清單中選取。

適用對象:本主題資訊適用於文件層級的專案和 Excel 和 Word的 VSTO 增益集專案。 如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能

本主題說明下列工作:

在設計階段加入控制項

您可以用幾種方式,透過文件層級專案,於設計階段將 Windows Form 控制項加入文件。

注意

在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置: 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱將 IDE 個人化

若要將 Windows Form 控制項拖曳至文件

  1. 在 Visual Studio 中建立或開啟 Excel 活頁簿專案或 Word 文件專案,如此才能在設計工具中看到文件。 如需建立專案的詳細資訊,請參閱如何:在 Visual Studio 中建立 Office 專案

  2. 在 [工具箱] 的 [通用控制項] 索引標籤中,按一下您要新增的控制項,並將它拖曳至文件中。

    注意

    在 Excel 中選取控制項時,您會在 [資料編輯列] 看到 =EMBED("WinForms.Control.Host","")。 這個文字是必要的,不應該刪除。

若要將 Windows Form 控制項拖曳至文件

  1. 在 Visual Studio 中建立或開啟 Excel 活頁簿專案或 Word 文件專案,如此才能在設計工具中看到文件。 如需建立專案的詳細資訊,請參閱如何:在 Visual Studio 中建立 Office 專案

  2. 在 [工具箱] 的 [通用控制項] 索引標籤中,按一下您要新增的控制項。

  3. 在文件上,在您希望成為控制項左上角的位置按一下,然後拖曳到希望成為控制項右下角的位置。

    控制項會依指定的位置和大小加入文件。

    注意

    在 Excel 中選取控制項時,您會在 [資料編輯列] 看到 =EMBED("WinForms.Control.Host","")。 這個文字是必要的,不應該刪除。

若要按一下控制項,將 Windows Form 控制項加入文件

  1. 在 Visual Studio 中建立或開啟 Excel 活頁簿專案或 Word 文件專案,如此才能在設計工具中看到文件。 如需建立專案的詳細資訊,請參閱如何:在 Visual Studio 中建立 Office 專案

  2. 在 [工具箱] 的 [通用控制項] 索引標籤中,按一下您要新增的控制項

  3. 在文件中,按一下要加入控制項的位置。

    控制項會依預設大小加入文件。

    注意

    在 Excel 中選取控制項時,您會在 [資料編輯列] 看到 =EMBED("WinForms.Control.Host","")。 這個文字是必要的,不應該刪除。

若要按兩下控制項,將 Windows Form 控制項加入文件

  1. 在 Visual Studio 中建立或開啟 Excel 活頁簿專案或 Word 文件專案,如此才能在設計工具中看到文件。 如需建立專案的詳細資訊,請參閱如何:在 Visual Studio 中建立 Office 專案

  2. 在 [工具箱] 的 [通用控制項] 索引標籤中,按兩下您要新增的控制項。

    控制項會加入文件或現用窗格的中央位置。

    注意

    在 Excel 中選取控制項時,您會在 [資料編輯列] 看到 =EMBED("WinForms.Control.Host","")。 這個文字是必要的,不應該刪除。

按下 Enter 鍵將 Windows Form 控制項新增至文件

  1. 在 Visual Studio 中建立或開啟 Excel 活頁簿專案或 Word 文件專案,如此才能在設計工具中看到文件。 如需建立專案的詳細資訊,請參閱如何:在 Visual Studio 中建立 Office 專案

  2. 在 [工具箱] 的 [通用控制項] 索引標籤中,按一下您要新增的控制項,然後按 Enter 鍵。

    控制項會加入文件或現用窗格的中央位置。

    注意

    在 Excel 中選取控制項時,您會在 [資料編輯列] 看到 =EMBED("WinForms.Control.Host","")。 這個文字是必要的,不應該刪除。

在文件層級專案中的執行階段加入內容控制項

您可以在執行階段以程式設計方式將 Windows Forms 控制項加入文件。 在 Word 中,請使用 ThisDocument 類別之 Controls 屬性的方法。 在 Excel 中,請使用 Sheetn 類別之 Controls 屬性的方法。 每個方法都有數個多載,可讓您以不同方式指定控制項的位置。

當您在執行階段將 Windows Forms 控制項加入文件時,當文件關閉後,控制項不會儲存在文件中。 您可以在下一次開啟文件時重新建立該控制項。 如需詳細資訊,請參閱在執行階段將控制項新增至 Office 文件

在執行階段加入 Windows Forms 控制項

  1. 使用名稱為新增<控制項類別>的方法 (其中 控制項類別是要新增的 Windows Forms 控制項的類別名稱,例如:AddButton)。

    下列程式碼範例示範如何將 Button 新增至 Excel 的文件層級專案中 Sheet1 的儲存格 C5 中。

    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        Microsoft.Office.Tools.Excel.Controls.Button salesButton;
        salesButton = this.Controls.AddButton(this.get_Range("C5"), "salesButton");
        salesButton.Text = "Calculate Total Sales";
    }
    

在 VSTO 增益集的執行階段加入控制項

您可以在執行階段以程式設計方式將 Windows Forms 控制項加入任何開啟的文件。 首先,請依據開啟的文件或工作表,產生一個主項目。 然後,在 Word 中使用新主項目之 Controls 屬性的方法。 在 Excel 中,則使用新主項目之 Controls 屬性的方法。 每個方法都有數個多載,可讓您以不同方式指定控制項的位置。

當您在執行階段將 Windows Forms 控制項加入文件時,當文件關閉後,控制項不會儲存在文件中。 您可以在下一次開啟文件時重新建立該控制項。 如需詳細資訊,請參閱在執行階段將控制項新增至 Office 文件

如需在 VSTO 增益集專案中產生主項目的詳細資訊,請參閱在 VSTO 增益集的執行階段中擴充 Word 文件和 Excel 活頁簿

在執行階段加入 Windows Forms 控制項

  1. 使用名稱為新增<控制項類別>的方法 (其中 控制項類別是要新增的 Windows Forms 控制項的類別名稱,例如:AddButton)。

    注意

    在以 .NET Framework 4 或更新版本為目標的 VSTO 增益集專案中,您必須先新增 Microsoft.Office.Tools.Excel.v4.0.Utilities.dllMicrosoft.Office.Tools.Word.v4.0.Utilities.dll 組件的參考,才能存取新增<控制項類別>方法。

    下列程式碼範例示範如何使用 Word VSTO 增益集,將 Button 加入現用文件的第一個段落。

    Microsoft.Office.Tools.Word.Controls.Button salesButton;
    
    Document extendedDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    salesButton = extendedDocument.Controls.AddButton(
        extendedDocument.Paragraphs[1].Range, 75, 18, "salesButton");
    salesButton.Text = "Calculate Sales";