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

更新: 2008 年 7 月

适用于

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

文档级项目

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

应用程序级项目

  • Excel 2007

  • Word 2007

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

Windows 窗体控件是用户可与之交互以便输入或操作数据的对象。在 Microsoft Office Excel 和 Microsoft Office Word 的文档级项目中,您可以在设计时向文档或工作簿中添加 Windows 窗体控件,也可以通过编程方式在运行时添加这些控件。从 Visual Studio 2008 Service Pack 1 (SP1) 开始,在 Excel 2007 或 Word 2007 的应用程序级外接程序中,您可以通过编程方式在运行时向任何打开的文档或工作表中添加这些控件。

有关更多信息,请参见如何:为 Office 文档添加 Windows 窗体控件

使用 Windows 窗体控件

可以将 Windows 窗体控件添加到文档或可自定义用户界面 (UI) 元素中,自定义用户界面元素包括操作窗格、自定义任务窗格和 Windows 窗体。通常,Windows 窗体控件在文档上的行为与在这些其他 UI 元素上的行为相同,但是也存在一些差异。有关信息,请参见 Office 文档上的 Windows 窗体控件的限制

将 Windows 窗体控件添加到文档中还是添加到某个其他 UI 元素中的决定,取决于多个因素。设计解决方案的 UI 时,请考虑下表中描述的 Windows 窗体控件的用法。

  • 在文档上。

    • 希望始终显示控件时。

    • 希望用户在文档中直接输入数据时,例如,在编辑图面已锁定的基于窗体的文档中。

    • 希望控件与文档中的数据一起显示时。例如,如果正向列表对象的每一行添加按钮,您将希望这些按钮嵌入到每个列表项中。

  • 在操作窗格或自定义任务窗格上。

    • 希望为用户提供上下文信息时。

    • 只希望结果(而非查询控件和数据)显示在文档中时。

    • 希望确保控件不与文档一起打印时。

    • 希望确保控件不会影响文档的视图时。

  • 在 Windows 窗体上。

    • 希望控制 UI 的大小时。

    • 希望防止用户隐藏或删除控件时。

    • 希望获取用户输入,并防止用户在输入被接收之前在文档中执行任何操作时。

以编程方式添加 Windows 窗体控件

可以在运行时将 Windows 窗体控件添加到 Word 文档和 Excel 工作表中。Visual Studio Tools for Office 提供了用于添加最常用的 Windows 窗体控件的帮助器方法。利用这些帮助器方法,可以快速向 Office 文档添加控件并访问这些控件的组合的 Windows 窗体控件功能及 Office 相关功能。

有关更多信息,请参见在运行时向 Office 文档添加控件

在文档级项目中使用 Windows 窗体控件

在文档上使用 Windows 窗体控件的某些方面是特定于文档级项目的,它们允许您使用 Visual Studio 设计器设计文档的 UI。

创建自定义用户控件

可以将用户控件添加到项目中,然后将其添加到“工具箱”。然后可以将用户控件直接拖动到文档中,与向文档添加 Windows 窗体控件的操作一样。在创建用户控件时,需要注意以下事项:

  • 请勿创建 sealed 用户控件。Visual Studio Tools for Office 会生成一个从该用户控件派生的包装类,以扩展该用户控件以及支持在文档上使用用户控件;Visual Studio Tools for Office 不能从 sealed 类派生。

  • 用户控件必须将 ComVisibleAttribute 属性设置为 true。在 Visual Studio Tools for Office 项目内创建的用户控件的此属性默认设置为 true,但属于外部项目的用户控件可能没有将此属性设置为 true。

  • 向文档添加了用户控件后,请不要在项目内对 UserControl 类重命名或将其删除。如果需要更改用户控件的名称,必须首先将其从文档中删除,更改了名称后,再将其添加到文档中。

在设计时排列控件

如果在设计时将多个控件添加到 Word 和 Excel 文档中,则可以在 Visual Studio 中使用“Microsoft Office Word”和“Microsoft Office Excel”工具栏来快速设置所有选定控件的排列。仅当文档或工作簿在设计器中打开时,这些工具栏才可用。

在设计器中选定多个控件后,可以使用这些控件上的以下按钮来排列这些控件:

  • 左对齐

  • 居中对齐

  • 右对齐

  • 顶端对齐

  • 中间对齐

  • 底端对齐

  • 使水平间距相等

  • 使垂直间距相等

说明:

在 Word 项目中,仅当所选控件未与文本对齐时,这些按钮才启用。默认情况下,在设计时添加到文档中的控件与文本对齐。有关更多信息,请参见在 Word 文档中使用 Windows 窗体控件

防止加载过程中在 Excel 工作簿中显示旧数据

在设计时将 Windows 窗体控件添加到文档或工作表中后,在用户关闭文档时,这些控件将保留在文档中。在设计时添加的控件也称为“静态控件”。

打开一个包含静态控件的 Excel 工作簿后,该工作簿会在 ActiveX 控件中显示静态控件的位图,直到自定义项代码运行并加载实际控件。Excel 创建此位图,并在每次保存工作簿时将位图存储在工作簿中。位图显示上次保存工作簿时控件的外观,包括控件显示的所有数据。有关包含 Windows 窗体控件和位图的 ActiveX 控件的更多信息,请参见 Office 文档上的 Windows 窗体控件的限制

某些情况下,代码不会进行加载而仅显示位图,例如当用户在设计模式下打开工作簿时。而且,如果用户在未安装 Visual Studio Tools for Office 运行时的计算机上打开工作簿,自定义项将无法运行以加载控件,因此只有控件的位图是可见的。在保存工作簿并将其发送到其他用户之前,应总是从工作簿上的控件中移除个人信息,以确保不会意外泄漏您的个人信息。

在设计时添加组件

一些控件或组件在文档中不可见,而是显示在组件栏中。Visual Studio Tools for Office 为每个文档窗口都提供了一个组件栏。仅当文档中存在组件时,组件栏才会显示在屏幕上。

请参见

任务

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

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

如何:在打印时隐藏工作表的控件

演练:使用 CheckBox 控件更改工作表格式设置

演练:使用 CheckBox 控件更改文档格式设置

演练:使用按钮在文档的文本框中显示文本

演练:使用按钮在工作表的文本框中显示文本

概念

在 Word 文档中使用 Windows 窗体控件

在 Excel 工作表中使用 Windows 窗体控件

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

宿主项和宿主控件概述

操作窗格概述

Office 文档上的 Windows 窗体控件的限制

参考

ControlCollection.Remove

ControlCollection.Remove

其他资源

Office 文档上的控件

Windows 窗体控件

修订记录

日期

修订历史记录

原因

2008 年 7 月

增加了有关使用应用程序级外接程序向文档中添加 Windows 窗体控件的信息。

SP1 功能更改。