本演练演示了Microsoft Office Excel 中作窗格上的控件的数据绑定。 这些控件演示 SQL Server 数据库中表之间的主/详细信息关系。
适用于: 本主题中的信息适用于 Excel 的文档级项目。 有关详细信息,请参阅 Office 应用程序和项目类型提供的功能。
本演练阐释了以下任务:
- 向工作表添加控件。 
- 创建操作窗格控件。 
- 向操作窗格控件添加数据绑定的 Windows 窗体控件。 
- 在应用程序打开时显示动作窗格。 
注释
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 Visual Studio IDE。
先决条件
你需要满足以下条件才能完成本演练:
- 包含 Microsoft Office 开发人员工具的 Visual Studio 版本。 有关详细信息,请参阅 配置计算机以开发 Office 解决方案。 
- Excel 2013 或 Excel 2010 。 
- 使用 Northwind SQL Server 示例数据库访问服务器。 
- 读取和写入 SQL Server 数据库的权限。 
创建项目
第一步是创建 Excel 工作簿项目。
创建新项目
- 创建一个名为 “我的 Excel 操作窗格” 的 Excel 工作簿项目。 在向导中,选择“ 创建新文档”。 有关详细信息,请参阅 如何:在 Visual Studio 中创建 Office 项目。 - Visual Studio 将在设计器中打开新的 Excel 工作簿,并将 我的 Excel 操作窗格 项目添加到 解决方案资源管理器。 
向项目添加新数据源
向项目添加新数据源
- 如果 “数据源” 窗口不可见,请通过菜单栏选择“ 查看>其他 Windows>数据源”来显示它。 
- 选择 “添加新数据源 ”以启动 数据源配置向导。 
- 选择 “数据库 ”,然后单击“ 下一步”。 
- 选择与 Northwind 示例 SQL Server 数据库的数据连接,或使用 “新建连接 ”按钮添加新连接。 
- 单击 “下一步” 。 
- 清除此选项以保存连接(如果已选中),然后单击“ 下一步”。 
- 展开“数据库对象”窗口中的“表”节点。 
- 选中 “供应商 ”表旁边的复选框。 
- 展开 “产品 ”表,然后选择 ProductName、 SupplierID、 QuantityPerUnit 和 UnitPrice。 
- 单击“完成”。 - 向导将 “供应商 ”表和 “产品 ”表添加到 “数据源 ”窗口。 它还将一个类型化数据集添加到项目中,该数据集会在解决方案资源管理器中显示。 
向工作表添加控件
接下来,将 NamedRange 控件和 ListObject 控件添加到第一个工作表。
添加 NamedRange 控件和 ListObject 控件
- 验证 My Excel Actions Pane.xlsx 工作簿是否在 Visual Studio 设计器中打开,并显示 - Sheet1。
- 在 “数据源 ”窗口中,展开 “供应商 ”表。 
- 单击 公司名称 节点上的下拉箭头,然后单击 NamedRange。 
- 将 公司名称 从 “数据源 ”窗口拖到 单元格 A2 中 - Sheet1。- 创建名为NamedRange的 - CompanyNameNamedRange控件,文本 <CompanyName> 将显示在单元格 A2 中。 同时,一个BindingSource、一个名为- suppliersBindingSource的表适配器和一个DataSet被添加到项目中。 该控件绑定到 BindingSource,而 BindingSource 又绑定到 DataSet 实例。
- 在“数据源”窗口中,向下滚动超过在“供应商”表下的列。 列表底部是 “产品” 表;这里之所以如此,是因为它是 “供应商” 表的子表。 选择此 “产品 ”表,而不是与 “供应商 ”表位于同一级别的表,然后单击显示的下拉箭头。 
- 单击下拉列表中的 ListObject ,然后将 Products 表拖动到 单元格 A6 中 - Sheet1。- ListObject命名 - ProductNameListObject的控件在单元格 A6 中创建。 同时,将一个名为- productsBindingSource的BindingSource和一个表适配器添加到项目中。 该控件绑定到 BindingSource,而 BindingSource 又绑定到 DataSet 实例。
- 仅适用于 C#,请在组件托盘中选择suppliersBindingSource,并在属性窗口中将Modifiers属性更改为Internal。 
将控件添加到操作窗格
接下来,你需要一个包含组合框的操作窗格控件。
添加任务窗格控件
- 在解决方案资源管理器中选择“我的 Excel 操作窗格”项目。 
- 在 “项目 ”菜单上,单击“ 添加新项”。 
- 在“ 添加新项 ”对话框中,选择 “作窗格控件”,将其命名为 ActionsControl,然后单击“ 添加”。 
将数据绑定的 Windows 窗体控件添加到操作窗格控件中
- 从“工具箱”的“常见控件”选项卡中,将ComboBox控件拖动到操作窗格控件。 
- 将 Size 属性更改为 171、21。 
- 调整用户控件的大小以适应组合框。 
将操作窗格上的控件绑定到数据
在本部分中,你将将数据源 ComboBox 设置为与工作表上的控件相同的数据源 NamedRange 。
设置控件的数据绑定属性
- 右键单击操作窗格控件,然后单击 查看代码。 
- 将以下代码添加到操作窗格控件的Load事件中。 
- 在 C# 中,必须为 - ActionsControl创建事件处理程序。 可以将此代码放置在构造函数中- ActionsControl。 有关创建事件处理程序的详细信息,请参阅 如何:在 Office 项目中创建事件处理程序。- public ActionsControl() { InitializeComponent(); this.Load += new EventHandler(ActionsControl_Load); }
显示操作窗格
在运行时添加控件之前,操作窗格不可见。
显示操作窗格
- 在 解决方案资源管理器中,右键单击 ThisWorkbook.vb 或 ThisWorkbook.cs,然后单击“ 查看代码”。 
- 在类中创建 - ThisWorkbook用户控件的新实例。
- 在 - ThisWorkbook的Startup事件处理程序中,将控件添加到操作窗格。
测试应用程序
现在可以测试文档,验证在打开文档时,操作窗格是否打开,以及控件是否具有主/从关系。
要测试您的文档
- 按 F5 运行项目。 
- 确认操作窗格是否可见。 
- 在列表框中选择公司。 验证控件中 NamedRange 是否列出了公司名称,以及控件中 ListObject 是否列出了产品详细信息。 
- 选择不同公司以验证公司名称和产品详细信息的更改是否适当。 
后续步骤
下面是一些可能接下来执行的任务:
- 将数据绑定到 Word 中的控件。 有关详细信息,请参阅 演练:将数据绑定到 Word 操作窗格上的控件。 
- 部署项目。 有关详细信息,请参阅 使用 ClickOnce 部署 Office 解决方案。