BindingNavigator 控件表示在窗体上定位和操作数据的标准化方法。多数情况下,BindingNavigator 与
默认情况下,BindingNavigator 控件的用户界面 (UI) 由一系列 ToolStrip 按钮、文本框和静态文本元素组成,用于进行大多数常见的数据相关操作(如添加数据、删除数据和在数据中导航)。每个控件都可以通过 BindingNavigator 控件的关联成员进行检索或设置。类似地,还与以编程方式执行相同功能的 BindingSource 类的成员存在一一对应关系,如下表所示。
UI 控件 | BindingNavigator 成员 | BindingSource 成员 |
---|---|---|
移到最前 | ||
前移一步 | ||
当前位置 | ||
计数 | ||
移到下一条记录 | ||
移到最后 | ||
新添 | ||
删除 |
将 BindingNavigator 控件添加到窗体并绑定到数据源(例如 BindingSource)时,将自动在此表中建立关系。
BindingNavigator 的所有构造函数都调用 AddStandardItems 方法以将标准的 UI 控件集与导航工具栏关联起来。可使用以下技术之一自定义此工具栏:
-
创建带有 BindingNavigator(Boolean) 构造函数的 BindingNavigator,此构造函数接受 Boolean 型的 addStandardItems 参数,并将此参数设置为 false。然后将需要的 ToolStripItem 对象添加到 Items 集合。
-
如果需要进行大量的自定义设置,或者将重复使用自定义设计,应从 BindingNavigator 派生一个类并重写 AddStandardItems 方法以定义附加标准项或替换标准项。
下面的代码示例演示如何使用 BindingNavigator 控件浏览数据库查询结果。结果集包含在
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Data.SqlClient; using System.Windows.Forms; // This form demonstrates using a BindingNavigator to display // rows from a database query sequentially. public class Form1 : Form { // This is the BindingNavigator that allows the user // to navigate through the rows in a DataSet. BindingNavigator customersBindingNavigator = new BindingNavigator(); // This is the BindingSource that provides data for // the Textbox control. BindingSource customersBindingSource = new BindingSource(); // This is the TextBox control that displays the CompanyName // field from the the DataSet. TextBox companyNameTextBox = new TextBox(); public Form1() { // Set up the BindingSource component. this.customersBindingNavigator.BindingSource = this.customersBindingSource; this.customersBindingNavigator.Dock = DockStyle.Top; this.Controls.Add(this.customersBindingNavigator); // Set up the TextBox control for displaying company names. this.companyNameTextBox.Dock = DockStyle.Bottom; this.Controls.Add(this.companyNameTextBox); // Set up the form. this.Size = new Size(800, 200); this.Load += new EventHandler(Form1_Load); } void Form1_Load(object sender, EventArgs e) { // Open a connection to the database. // Replace the value of connectString with a valid // connection string to a Northwind database accessible // to your system. string connectString = "Integrated Security=SSPI;Persist Security Info=False;" + "Initial Catalog=Northwind;Data Source=localhost"; SqlConnection connection = new SqlConnection(); connection.ConnectionString = connectString; connection.Open(); // Execute the query. SqlCommand command = new SqlCommand( "Select * From Customers", connection); SqlDataReader reader = command.ExecuteReader( CommandBehavior.CloseConnection); // Load the Customers result set into the DataSet. DataSet ds = new DataSet("Northwind Customers"); ds.Load( reader, LoadOption.OverwriteChanges, new string[] { "Customers" }); // Assign the DataSet as the DataSource for the BindingSource. this.customersBindingSource.DataSource = ds; // Bind the CompanyName field to the TextBox control. this.companyNameTextBox.DataBindings.Add( new Binding("Text", this.customersBindingSource, "CompanyName", true)); } }DataSet 中,用 BindingSource 组件将它绑定到 TextBox 控件。