如何:为 Office 文档添加 Windows 窗体控件

更新: 2008 年 7 月

适用于

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

文档级项目

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

应用程序级项目

  • Excel 2007

  • Word 2007

有关更多信息,请参见按应用程序和项目类型提供的功能

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

本主题介绍了以下任务:

  • 在设计时添加控件

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

  • 在运行时向应用程序级外接程序中添加控件

也可以向 Office 文档添加宿主控件,如 Bookmark 控件和 NamedRange 控件。有关更多信息,请参见 Word 宿主控件Excel 宿主控件

在设计时添加控件

可通过以下几种方法在设计时向文档级项目的文档中添加 Windows 窗体控件。

说明:

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置

将 Windows 窗体控件拖动到文档中

  1. 在 Visual Studio 中创建或打开一个 Excel 工作簿项目或 Word 文档项目,使该文档显示在设计器中。有关创建项目的信息,请参见如何:创建 Visual Studio Tools for Office 项目

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

    说明:

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

在文档中绘制 Windows 窗体控件

  1. 在 Visual Studio 中创建或打开一个 Excel 工作簿项目或 Word 文档项目,使该文档显示在设计器中。有关创建项目的信息,请参见如何:创建 Visual Studio Tools for Office 项目

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

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

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

    说明:

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

通过单击控件向文档中添加 Windows 窗体控件

  1. 在 Visual Studio 中创建或打开一个 Excel 工作簿项目或 Word 文档项目,使该文档显示在设计器中。有关创建项目的信息,请参见如何:创建 Visual Studio Tools for Office 项目

  2. 在“工具箱”的“公共控件”选项卡中单击要添加的控件

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

    控件按默认大小添加到文档中。

    说明:

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

通过双击控件向文档中添加 Windows 窗体控件

  1. 在 Visual Studio 中创建或打开一个 Excel 工作簿项目或 Word 文档项目,使该文档显示在设计器中。有关创建项目的信息,请参见如何:创建 Visual Studio Tools for Office 项目

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

    该控件被添加到文档或活动窗格的中央位置。

    说明:

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

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

  1. 在 Visual Studio 中创建或打开一个 Excel 工作簿项目或 Word 文档项目,使该文档显示在设计器中。有关创建项目的信息,请参见如何:创建 Visual Studio Tools for Office 项目

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

    该控件被添加到文档或活动窗格的中央位置。

    说明:

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

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

可以在运行时以编程方式向文档中添加 Windows 窗体控件。在 Word 中,可以使用 ThisDocument 类的 Controls 属性的方法。在 Excel 中,可以使用 Sheetn 类 Controls 属性的方法。每个方法都有多个重载,使用这些重载,可以按不同的方式指定控件的位置。有关更多信息,请参见 Windows 窗体控件的帮助器方法

如果在运行时向某个文档中添加 Windows 窗体控件,那么,在关闭该文档后,该控件将不会保留在文档中。您可以在下次打开文档时重新创建该控件。有关更多信息,请参见在运行时向 Office 文档添加控件

在运行时添加 Windows 窗体控件

  • 使用名称为 Add<控件类>(其中控件类 是要添加的 Windows 窗体控件的类名,如 AddButton)的 Microsoft.Office.Tools.Word.ControlCollection 方法(对于 Word 项目)或 Microsoft.Office.Tools.Excel.ControlCollection 方法(对于 Excel 项目)。

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

    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 窗体控件。首先,生成一个基于所打开的文档或工作表的宿主项。然后,使用新宿主项的 Document.Controls 属性的方法(在 Word 中),或者使用新宿主项的 Worksheet.Controls 属性的方法(在 Excel 中)。每个方法都有多个重载,使用这些重载,可以按不同的方式指定控件的位置。有关更多信息,请参见 Windows 窗体控件的帮助器方法

如果在运行时向某个文档中添加 Windows 窗体控件,那么,在关闭该文档后,该控件将不会保留在文档中。您可以在下次打开文档时重新创建该控件。有关更多信息,请参见在运行时向 Office 文档添加控件

有关在应用程序级项目中生成宿主项的更多信息,请参见在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿

在运行时添加 Windows 窗体控件

  • 使用名称为 Add<控件类>(其中控件类 是要添加的 Windows 窗体控件的类名,如 AddButton)的 Microsoft.Office.Tools.Word.ControlCollection 方法(对于 Word 项目)或 Microsoft.Office.Tools.Excel.ControlCollection 方法(对于 Excel 项目)。

    下面的代码示例演示如何使用 Word 外接程序,向活动文档的第一段中添加 Button

    Dim salesButton As Microsoft.Office.Tools.Word.Controls.Button
    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;
    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";
    

请参见

任务

如何:调整工作表单元格中的控件的大小

概念

Office 文档上的 Windows 窗体控件概述

在运行时向 Office 文档添加控件

宿主项和宿主控件概述

了解 Office 解决方案中的可选参数

修订记录

日期

修订历史记录

原因

2008 年 7 月

增加了向应用程序级外接程序的文档中添加控件的操作过程。

SP1 功能更改。