更新:2007 年 11 月
BindingNavigator 控件是一个具有特殊用途的 ToolStrip 控件,用于定位和操作窗体上绑定到数据的控件。
由于 BindingNavigator 组件是一个 ToolStrip 控件,因此可以轻松对其进行修改,加入供用户使用的附加或替代命令。
在下面的过程中,我们将 TextBox 控件绑定到数据,并对 ToolStrip 控件进行修改,在其中包括“加载”、“保存”和“取消”按钮。
向 BindingNavigator 组件添加“加载”、“保存”和“取消”按钮
- 向窗体中添加一个 TextBox 控件。 
- 将其绑定到一个 BindingSource,后者绑定到了一个数据源。在此例中,BindingSource 绑定到数据库。 
- 生成数据集和表适配器后,向窗体中拖一个 BindingNavigator 控件。 
- 将 BindingNavigator 控件的 BindingSource 属性设置为窗体上绑定到控件的 BindingSource。 
- 选择 BindingNavigator 控件。 
- 单击智能标记符号 ( .gif) ),“BindingNavigator 任务”对话框将出现,选择“编辑项”。 ),“BindingNavigator 任务”对话框将出现,选择“编辑项”。- “项集合编辑器”出现。 
- 在“项集合编辑器”中,完成下述操作: - 通过选择相应类型的 ToolStripItem 并单击“添加”按钮来添加一个 ToolStripSeparator 和三个 ToolStripButton 项。 
- 将按钮的 Name 属性分别设置为“LoadButton”、“SaveButton”和“CancelButton”。 
- 将这些按钮的 Text 属性分别设置为“加载”、“保存”和“取消”。 
- 将每个按钮的 DisplayStyle 属性设置为“Text”。也可将此属性设置为“Image”或“ImageAndText”,并设置要显示在 Image 属性中的图像。 
- 单击“确定”关闭对话框。这些按钮将添加到 ToolStrip 上。 
 
- 右击窗体并选择“查看代码”。 
- 在“代码编辑器”中,找到将数据加载到表适配器的代码行。这些代码是在第 2 步设置数据绑定时生成的。代码形式如下:TableAdapterName.Fill(DataSetName.TableName)。此代码最有可能位于窗体的 Load 事件中。 
- 为之前创建的“加载”ToolStripButton 的 Click 事件创建事件处理程序,并将此数据加载代码移入其中。 - 代码看起来应类似于以下形式: - [Visual Basic] - Private Sub LoadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadButton.Click TableAdapterName.Fill(DataSetName.TableName) End Sub- [C#] - private void LoadButton_Click(System.Object sender, System.EventArgs e) { TableAdapterName.Fill(DataSetName.TableName); }
- 为之前创建的“保存”ToolStripButton 的 Click 事件创建事件处理程序,并编写代码以更新该控件所绑定到的表中的数据。 - [Visual Basic] - Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click TableAdapterName.Update(DataSetName.TableName) End Sub- [C#] - private void SaveButton_Click(System.Object sender, System.EventArgs e) { TableAdapterName.Update(DataSetName.TableName); }.gif) 说明: 说明:- 在某些情况下,BindingNavigator 组件会已有一个“保存”按钮,但 Windows 窗体设计器并没有生成代码。如果这样,可将前面的代码加入该按钮的 Click 事件处理程序中,而不是在 ToolStrip 上创建全新的按钮。不过,该按钮在默认情况下是禁用的,因此要使按钮正常工作,必须将其 Enabled 属性设置为 true。 
- 为早先创建的“取消”ToolStripButton 的 Click 事件创建事件处理程序,并编写代码以取消对所显示数据记录所做的任何更改。 - [Visual Basic] - Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CancelButton.Click BindingSourceName.CancelEdit() End Sub- [C#] - private void CancelButton_Click(System.Object sender, System.EventArgs e) { BindingSourceName.CancelEdit(); }.gif) 说明: 说明:- CancelEdit 方法按数据行起作用。在定位到下一记录前,保存您在查看该单一记录时所做的任何更改。