如何:向 Windows 窗体 BindingNavigator 控件添加“加载”、“保存”和“取消”按钮

BindingNavigator 控件是一种特殊用途的 ToolStrip 控件,用于导航和操作窗体中绑定到数据的控件。

因为它是 ToolStrip 控件,所以可以轻松修改 BindingNavigator 组件以包含用户的其他或替代命令。

在以下过程中,TextBox 控件绑定到数据,并且添加到窗体的 ToolStrip 控件被修改为包括“加载”、“保存”和“取消”按钮。

向 BindingNavigator 组件添加“加载”、“保存”和“取消”按钮

  1. 在 Visual Studio 中,向窗体添加 TextBox 控件。

  2. 将其绑定到 BindingSource(绑定到数据源)。 对于此示例,BindingSource 绑定到数据库。

  3. 生成数据集和表适配器后,将 BindingNavigator 控件拖到窗体中。

  4. BindingNavigator 控件的 BindingSource 属性设置为绑定到控件的窗体中的 BindingSource

  5. 选择 BindingNavigator 控件。

  6. 单击设计器操作字形 (黑色小箭头),随即显示“BindingNavigator 任务”对话框,此时请选择“编辑项”

    随即显示“项集合编辑器”

  7. 在“项集合编辑器”中,完成以下操作

    1. 通过选择相应类型的 ToolStripItem 并单击“添加”按钮,添加一个 ToolStripSeparator 和三个 ToolStripButton

    2. 将按钮的 Name 属性分别设置为“LoadButton”、“SaveButton”和“CancelButton”

    3. 将按钮的 Text 属性设置为“Load”、“Save”和“Cancel”

    4. 将每个按钮的 DisplayStyle 属性设置为“Text”。 或者,也可以将此属性设置为“Image”或“ImageAndText”,并设置要在 Image 属性中显示的图像

    5. 单击 “确定” 关闭对话框。 按钮会被添加到 ToolStrip

  8. 右键单击窗体并选择“查看代码”

  9. 在“代码编辑器”中,找到将数据加载到表适配器中的代码行。 此代码是在步骤 2 中设置数据绑定时生成的。 该代码应与以下代码相似:TableAdapterName.Fill(DataSetName.TableName)。 它很可能位于窗体的 Load 事件中。

  10. 为你之前创建的负载 Load ToolStripButtonClick 事件创建事件处理程序,并将此数据加载代码移入其中。

    现在,代码应类似于如下内容:

    Private Sub LoadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadButton.Click
        TableAdapterName.Fill(DataSetName.TableName)
    End Sub
    
    private void LoadButton_Click(System.Object sender,
        System.EventArgs e)
    {
        TableAdapterName.Fill(DataSetName.TableName);
    }
    
  11. 为之前创建的 SaveToolStripButtonClick 事件创建事件处理程序,并编写代码来更新控件绑定到的表中的数据

    Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click
        TableAdapterName.Update(DataSetName.TableName)
    End Sub
    
    private void SaveButton_Click(System.Object sender,
        System.EventArgs e)
    {
        TableAdapterName.Update(DataSetName.TableName);
    }
    

    注意

    在某些情况下,BindingNavigator 组件已有“保存”按钮,但 Windows 窗体设计器没有生成任何代码。 在这种情况下,可以将前面的代码放在该按钮的 Click 事件处理程序中,而不是在 ToolStrip 上创建一个全新的按钮。 但是,默认情况下,该按钮处于禁用状态,因此必须将该按钮的 Enabled 属性设置为 true 才能使该按钮正常工作。

  12. 为你之前创建的 Cancel ToolStripButtonClick 事件创建事件处理程序,并编写代码以取消对显示的数据记录的任何更改。

    Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CancelButton.Click
        BindingSourceName.CancelEdit()
    End Sub
    
    private void CancelButton_Click(System.Object sender, System.EventArgs e)
    {
        BindingSourceName.CancelEdit();
    }
    

    注意

    CancelEdit 方法的作用域为数据行。 在导航到下一条记录之前,请先保存在查看单条记录时所做的任何更改。

另请参阅