向办公室文档添加Windows 窗体控件

你可以在设计时在文档级项目中,将 Windows 窗体控件添加到 Microsoft Office Excel 和 Microsoft Office Word 文档。 在运行时,可以在文档级自定义项和 VSTO 外接程序中添加控件。例如,可以将控件添加到 ComboBox 工作表,以便用户可以从选项列表中选择。

适用于: 本主题中的信息适用于 Excel 和 Word 的文档级项目和 VSTO 外接程序项目。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。

本主题介绍了以下任务:

在设计时添加控件

有几种方式在设计时向文档级项目中的文档添加 Windows 窗体控件。

注意

以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 IDE

若要将 Windows 窗体控件拖到文档

  1. 在 Visual Studio 中创建或打开 Excel 工作簿项目或 Word 文档项目,以使文档在设计器中可见。 有关创建项目的信息,请参阅如何:在 Visual Studio 中创建办公室项目。

  2. 在工具箱“常用控件”选项卡中,单击要添加的控件,然后将其拖动到文档中。

    注意

    当在 Excel 中选择一个控件时, “公式栏” 中将显示 =EMBED("WinForms.Control.Host","")。 此文本是必需的并且不应删除。

若要在文档中绘制 Windows 窗体控件

  1. 在 Visual Studio 中创建或打开 Excel 工作簿项目或 Word 文档项目,以使文档在设计器中可见。 有关创建项目的信息,请参阅如何:在 Visual Studio 中创建办公室项目。

  2. 在工具箱“常见控件”选项卡中,单击要添加的控件。

  3. 在文档中,单击希望要定位的控件的左上角位置,然后拖动到要定位的控件的右下角位置。

    该控件将按指定的位置和大小添加到文档。

    注意

    当在 Excel 中选择一个控件时, “公式栏” 中将显示 =EMBED("WinForms.Control.Host","")。 此文本是必需的并且不应删除。

若要通过右键单击控件将 Windows 窗体控件添加到文档

  1. 在 Visual Studio 中创建或打开 Excel 工作簿项目或 Word 文档项目,以使文档在设计器中可见。 有关创建项目的信息,请参阅如何:在 Visual Studio 中创建办公室项目。

  2. 工具箱“常用控件”选项卡中,单击要添加的控件

  3. 在文档中,单击希望要添加的控件的位置。

    该控件将以默认大小添加到文档。

    注意

    当在 Excel 中选择一个控件时, “公式栏” 中将显示 =EMBED("WinForms.Control.Host","")。 此文本是必需的并且不应删除。

若要通过双击控件将 Windows 窗体控件添加到文档

  1. 在 Visual Studio 中创建或打开 Excel 工作簿项目或 Word 文档项目,以使文档在设计器中可见。 有关创建项目的信息,请参阅如何:在 Visual Studio 中创建办公室项目。

  2. 在工具箱“常用控件”选项卡中,双击要添加的控件。

    该控件将被添加到位于文档或活动窗格中心位置处的文档。

    注意

    当在 Excel 中选择一个控件时, “公式栏” 中将显示 =EMBED("WinForms.Control.Host","")。 此文本是必需的并且不应删除。

按 Enter 键向文档添加Windows 窗体控件

  1. 在 Visual Studio 中创建或打开 Excel 工作簿项目或 Word 文档项目,以使文档在设计器中可见。 有关创建项目的信息,请参阅如何:在 Visual Studio 中创建办公室项目。

  2. 在工具箱“常用控件”选项卡中,单击要添加的控件,然后按 Enter 键。

    该控件将被添加到位于文档或活动窗格中心位置处的文档。

    注意

    当在 Excel 中选择一个控件时, “公式栏” 中将显示 =EMBED("WinForms.Control.Host","")。 此文本是必需的并且不应删除。

在文档级项目中的运行时添加控件

可以在运行时以编程方式向文档添加Windows 窗体控件。 在 Word 中,请使用 ThisDocument 类的 Controls 属性的方法。 在 Excel 中,使用 n 类的属性Sheet的方法Controls。 每种方法都具有好几个重载,使你能够以不同的方式指定控件的位置。

在运行时向文档添加Windows 窗体控件时,文档关闭时该控件不会保留在文档中。 你可以在下次打开文档时重新创建该控件。 有关详细信息,请参阅在运行时向办公室文档添加控件。

在运行时添加Windows 窗体控件

  1. 使用名称为 Add<控件类的方法(其中控件类>是要添加的Windows 窗体控件的类名称,例如AddButton)。

    下面的代码示例演示如何在 Excel 文档级项目中向单元格 C5 Sheet1 添加Button内容。

    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 窗体控件添加到任何打开的文档。 首先,生成一个基于打开的文档或工作表的主机项。 然后,在 Word 中,使用新主机项的 Controls 属性的方法。 然后,在 Excel 中,使用新主机项的 Controls 属性的方法。 每种方法都具有好几个重载,使你能够以不同的方式指定控件的位置。

在运行时向文档添加Windows 窗体控件时,文档关闭时该控件不会保留在文档中。 你可以在下次打开文档时重新创建该控件。 有关详细信息,请参阅在运行时向办公室文档添加控件。

有关在 VSTO 外接程序项目中生成主机项的详细信息,请参阅 在运行时在 VSTO 外接程序中扩展 Word 文档和 Excel 工作簿。

在运行时添加Windows 窗体控件

  1. 使用名称为 Add<控件类的方法(其中控件类>是要添加的Windows 窗体控件的类名称,例如AddButton)。

    注意

    在面向 .NET Framework 4 或更高版本的 VSTO 外接程序项目中,必须添加对 Microsoft.办公室的引用。Tools.Excel.v4.0.Utilities.dllMicrosoft.办公室。工具.Word.v4.0.Utilities.dll 程序集,然后才能访问 Add<控件类>方法。

    下面的代码示例演示了如何通过使用 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";