适用于: yes no Visual Studio Visual Studio for Mac no Visual Studio Code

本演练演示了对Microsoft Office Excel操作窗格上的控件的数据绑定。 控件演示 SQL Server 数据库中表之间的主/从关系。

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

本演练演示以下任务:

  • 向工作表添加控件。

  • 创建操作窗格控件。

  • 向操作窗格控件添加数据绑定Windows 窗体控件。

  • 显示应用程序打开时的操作窗格。

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

    您需要满足以下条件才能完成本演练:

  • Visual Studio 的一个版本,其中包含 Microsoft Office 开发人员工具。 有关详细信息,请参阅 配置计算机以开发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

  • 单击“完成”。

    向导将 “供应商 ”表和 “产品 ”表添加到 “数据源 ”窗口。 它还将类型化数据集添加到 解决方案资源管理器中可见 的项目。

    向工作表添加控件

    接下来,向第一个 ListObject 工作表添加控件 NamedRange 和控件。

    添加 NamedRange 控件和 ListObject 控件

  • 验证 “我的Excel操作”Pane.xlsx 工作簿是否在显示Visual Studio设计器 Sheet1 中打开。

  • “数据源 ”窗口中,展开 “供应商 ”表。

  • 单击 公司名称 节点上的下拉箭头,然后单击 NamedRange

  • 公司名称 “数据源 ”窗口拖到 单元格 A2 Sheet1

    NamedRange 将创建一个名为 CompanyNameNamedRange 控件,文本 <CompanyName> 将显示在单元格 A2 中。 同时, BindingSource 命名 suppliersBindingSource 表适配器和表 DataSet 适配器将添加到项目中。 该控件绑定到 BindingSource 该控件,而该控件又绑定到 DataSet 实例。

  • “数据源 ”窗口中,向下滚动到 “供应商 ”表下的列。 列表底部是 “产品 ”表;此处是因为它是 “供应商 ”表的子级。 选择此 “产品 ”表,而不是与 “供应商 ”表位于同一级别的产品表,然后单击显示的下拉箭头。

  • 单击下拉列表中的 ListObject ,然后将 Products 表拖动到 单元格 A6 Sheet1

    ListObject 命名 ProductNameListObject 的控件在单元格 A6 中创建。 同时, BindingSource 命名 productsBindingSource 适配器和表适配器将添加到项目中。 该控件绑定到 BindingSource 该控件,而该控件又绑定到 DataSet 实例。

  • 对于仅限 C#,请选择组件托盘上的 suppliersBindingSource ,并将 Modifiers 属性更改为“ 属性 ”窗口中 的内部

    向操作窗格添加控件

    接下来,需要一个具有组合框的操作窗格控件。

    添加操作窗格控件

  • 解决方案资源管理器 中选择 “我的Excel操作”窗格 项目。

  • “项目” 菜单上,单击 “添加新项”

  • 在“ 添加新项 ”对话框中,选择 “操作窗格控件 ”,将其命名为 ActionsControl ,然后单击“ 添加 ”。

    向操作窗格控件添加数据绑定Windows 窗体控件

  • 工具箱 “常见控件 ”选项卡中,将控件 ComboBox 拖到操作窗格控件。

  • Size 属性更改为 171,21

  • 调整用户控件的大小以适应组合框。

    将操作窗格上的控件绑定到数据

    在本部分中,你将将数据源 ComboBox 设置为与工作表上的控件相同的数据源 NamedRange

    设置控件的数据绑定属性

  • 右键单击操作窗格控件,然后单击“ 查看代码 ”。

  • 将以下代码添加到 Load 操作窗格控件的事件。

    private void ActionsControl_Load(object sender, EventArgs e) this.comboBox1.DataSource = Globals.Sheet1.suppliersBindingSource; this.comboBox1.DisplayMember = "CompanyName"; Private Sub ActionsControl_Load(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load Me.ComboBox1.DataSource = Globals.Sheet1.SuppliersBindingSource Me.ComboBox1.DisplayMember = "CompanyName" End Sub
  • In C#, you must create an event handler for the ActionsControl . 可以将此代码置于构造函数中 ActionsControl 。 有关创建事件处理程序的详细信息,请参阅 如何:在Office项目中创建事件处理程序

    public ActionsControl() InitializeComponent(); this.Load += new EventHandler(ActionsControl_Load);

    显示操作窗格

    在运行时添加控件之前,操作窗格不可见。

    显示操作窗格

  • 解决方案资源管理器 中,右键单击 ThisWorkbook.vb ThisWorkbook.cs ,然后单击“ 查看代码 ”。

  • 在类中创建 ThisWorkbook 用户控件的新实例。

    private void ThisWorkbook_Startup(object sender, System.EventArgs e) this.ActionsPane.Controls.Add(actions); Private Sub ThisWorkbook_Startup(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Startup Me.ActionsPane.Controls.Add(actions) End Sub
  • 在列表框中选择公司。 验证公司名称是否在控件中 NamedRange 列出,以及产品详细信息是否列在控件中 ListObject

  • 选择各种公司,以根据需要验证公司名称和产品详细信息更改。

    以下是接下来可能要执行的一些任务:

  • 将数据绑定到 Word 中的控件。 有关详细信息,请参阅 演练:将数据绑定到 Word 操作窗格上的控件

  • 部署项目。 有关详细信息,请参阅 使用 ClickOnce 部署Office解决方案

  • 操作窗格概述
  • 如何:管理操作窗格上的控件布局
  • 将数据绑定到Office解决方案中的控件
  •