Como: Navegar em Dados com o Controle BindingNavigator do Windows Forms
O advento do BindingNavigator controle do Windows Forms permite que os desenvolvedores fornecem participante usuários com dados simples navegação e manipulação de interface do usuário em formulários que criam.
The BindingNavigator o controle é um ToolStrip controlar com botões pré-configurados para a navegação para o primeiro, último, registro seguinte e anterior em um conjunto de dados, bem sistema autônomo sistema autônomo botões para adicionar e excluir registros. Adicionando botões à BindingNavigator controle é fácil, porque é um ToolStrip controle.
Para cada botão sobre o BindingNavigator controlar, existe um membro do correspondente de BindingSource componente que permite a mesma funcionalidade por meio de programação. Por exemplo, a MoveFirstItem botão corresponde do MoveFirst método para o BindingSource componente, o DeleteItem botão corresponde do RemoveCurrent método e assim por diante. sistema autônomo resultado, permitindo que o BindingNavigator o controle para navegar pelos registros de dados é uma simples sistema autônomo configuração de seu BindingSource propriedade para o apropriado BindingSource componente do formulário.
Para configurar o controle BindingNavigator
Adicionar um BindingSource componente denominado bindingSource1 e dois TextBox controles denominados textBox1 e textBox2.
BIND bindingSource1 dados e os controles de caixa de texto para bindingSource1. Para fazer isso, cole o seguinte código no formulário e chame LoadData no construtor do formulário ou Load evento-método de manipulação.
Private Sub LoadData() ' The xml to bind to. Dim xml As String = "<US><states>" + "<state><name>Washington</name><capital>Olympia</capital></state>" + "<state><name>Oregon</name><capital>Salem</capital></state>" + "<state><name>California</name><capital>Sacramento</capital></state>" + "<state><name>Nevada</name><capital>Carson City</capital></state>" + "</states></US>" ' Convert the xml string to bytes and load into a memory stream. Dim xmlBytes As Byte() = Encoding.UTF8.GetBytes(xml) Dim stream As New MemoryStream(xmlBytes, False) ' Create a DataSet and load the xml into it. Dim [set] As New DataSet() [set].ReadXml(stream) ' Set the DataSource to the DataSet, and the DataMember ' to state. bindingSource1.DataSource = [set] bindingSource1.DataMember = "state" textBox1.DataBindings.Add("Text", bindingSource1, "name") textBox2.DataBindings.Add("Text", bindingSource1, "capital") End Sub 'LoadData
private void LoadData() { // The xml to bind to. string xml = @"<US><states>" + @"<state><name>Washington</name><capital>Olympia</capital></state>" + @"<state><name>Oregon</name><capital>Salem</capital></state>" + @"<state><name>California</name><capital>Sacramento</capital></state>" + @"<state><name>Nevada</name><capital>Carson City</capital></state>" + @"</states></US>"; // Convert the xml string to bytes and load into a memory stream. byte[] xmlBytes = Encoding.UTF8.GetBytes(xml); MemoryStream stream = new MemoryStream(xmlBytes, false); // Create a DataSet and load the xml into it. DataSet set = new DataSet(); set.ReadXml(stream); // Set the DataSource to the DataSet, and the DataMember // to state. bindingSource1.DataSource = set; bindingSource1.DataMember = "state"; textBox1.DataBindings.Add("Text", bindingSource1, "name"); textBox2.DataBindings.Add("Text", bindingSource1, "capital"); }
Adicionar um BindingNavigator controle de chamada bindingNavigator1 ao seu formulário.
conjunto o BindingSource propriedade para bindingNavigator1 para bindingSource1. Você pode fazer isso com o designer ou no código.
bindingNavigator1.BindingSource = bindingSource1
bindingNavigator1.BindingSource = bindingSource1;
Exemplo
O exemplo de código a seguir é o exemplo completo para as etapas listadas anteriormente.
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Xml
Imports System.IO
Imports System.Text
Class Form1
Inherits Form
Private components As IContainer
Private bindingNavigator1 As BindingNavigator
Private bindingNavigatorAddNewItem As ToolStripButton
Private bindingNavigatorCountItem As ToolStripLabel
Private bindingNavigatorDeleteItem As ToolStripButton
Private bindingNavigatorMoveFirstItem As ToolStripButton
Private bindingNavigatorMovePreviousItem As ToolStripButton
Private bindingNavigatorSeparator As ToolStripSeparator
Private bindingNavigatorPositionItem As ToolStripTextBox
Private bindingNavigatorSeparator1 As ToolStripSeparator
Private bindingNavigatorMoveNextItem As ToolStripButton
Private bindingNavigatorMoveLastItem As ToolStripButton
Private textBox1 As TextBox
Private textBox2 As TextBox
Private bindingSource1 As BindingSource
Private bindingNavigatorSeparator2 As ToolStripSeparator
Public Sub New()
InitializeComponent()
LoadData()
bindingNavigator1.BindingSource = bindingSource1
End Sub 'New
Private Sub LoadData()
' The xml to bind to.
Dim xml As String = "<US><states>" + "<state><name>Washington</name><capital>Olympia</capital></state>" + "<state><name>Oregon</name><capital>Salem</capital></state>" + "<state><name>California</name><capital>Sacramento</capital></state>" + "<state><name>Nevada</name><capital>Carson City</capital></state>" + "</states></US>"
' Convert the xml string to bytes and load into a memory stream.
Dim xmlBytes As Byte() = Encoding.UTF8.GetBytes(xml)
Dim stream As New MemoryStream(xmlBytes, False)
' Create a DataSet and load the xml into it.
Dim [set] As New DataSet()
[set].ReadXml(stream)
' Set the DataSource to the DataSet, and the DataMember
' to state.
bindingSource1.DataSource = [set]
bindingSource1.DataMember = "state"
textBox1.DataBindings.Add("Text", bindingSource1, "name")
textBox2.DataBindings.Add("Text", bindingSource1, "capital")
End Sub 'LoadData
<STAThread()> _
Public Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New Form1())
End Sub 'Main
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As New System.ComponentModel.ComponentResourceManager(GetType(Form1))
Me.bindingNavigator1 = New System.Windows.Forms.BindingNavigator(Me.components)
Me.bindingNavigatorAddNewItem = New System.Windows.Forms.ToolStripButton()
Me.bindingNavigatorCountItem = New System.Windows.Forms.ToolStripLabel()
Me.bindingNavigatorDeleteItem = New System.Windows.Forms.ToolStripButton()
Me.bindingNavigatorMoveFirstItem = New System.Windows.Forms.ToolStripButton()
Me.bindingNavigatorMovePreviousItem = New System.Windows.Forms.ToolStripButton()
Me.bindingNavigatorSeparator = New System.Windows.Forms.ToolStripSeparator()
Me.bindingNavigatorPositionItem = New System.Windows.Forms.ToolStripTextBox()
Me.bindingNavigatorSeparator1 = New System.Windows.Forms.ToolStripSeparator()
Me.bindingNavigatorMoveNextItem = New System.Windows.Forms.ToolStripButton()
Me.bindingNavigatorMoveLastItem = New System.Windows.Forms.ToolStripButton()
Me.bindingNavigatorSeparator2 = New System.Windows.Forms.ToolStripSeparator()
Me.textBox1 = New System.Windows.Forms.TextBox()
Me.textBox2 = New System.Windows.Forms.TextBox()
Me.bindingSource1 = New System.Windows.Forms.BindingSource(Me.components)
CType(Me.bindingNavigator1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.bindingNavigator1.SuspendLayout()
CType(Me.bindingSource1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
' bindingNavigator1
'
Me.bindingNavigator1.AddNewItem = Me.bindingNavigatorAddNewItem
Me.bindingNavigator1.CountItem = Me.bindingNavigatorCountItem
Me.bindingNavigator1.CountItemFormat = "of {0}"
Me.bindingNavigator1.DeleteItem = Me.bindingNavigatorDeleteItem
Me.bindingNavigator1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bindingNavigatorMoveFirstItem, Me.bindingNavigatorMovePreviousItem, Me.bindingNavigatorSeparator, Me.bindingNavigatorPositionItem, Me.bindingNavigatorCountItem, Me.bindingNavigatorSeparator1, Me.bindingNavigatorMoveNextItem, Me.bindingNavigatorMoveLastItem, Me.bindingNavigatorSeparator2, Me.bindingNavigatorAddNewItem, Me.bindingNavigatorDeleteItem})
Me.bindingNavigator1.Location = New System.Drawing.Point(0, 0)
Me.bindingNavigator1.MoveFirstItem = Me.bindingNavigatorMoveFirstItem
Me.bindingNavigator1.MoveLastItem = Me.bindingNavigatorMoveLastItem
Me.bindingNavigator1.MoveNextItem = Me.bindingNavigatorMoveNextItem
Me.bindingNavigator1.MovePreviousItem = Me.bindingNavigatorMovePreviousItem
Me.bindingNavigator1.Name = "bindingNavigator1"
Me.bindingNavigator1.PositionItem = Me.bindingNavigatorPositionItem
Me.bindingNavigator1.TabIndex = 2
Me.bindingNavigator1.Text = "bindingNavigator1"
'
' bindingNavigatorAddNewItem
'
Me.bindingNavigatorAddNewItem.Image = CType(resources.GetObject("bindingNavigatorAddNewItem.Image"), System.Drawing.Image)
Me.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"
Me.bindingNavigatorAddNewItem.Text = "Add new"
'
' bindingNavigatorCountItem
'
Me.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"
Me.bindingNavigatorCountItem.Text = "of {0}"
Me.bindingNavigatorCountItem.ToolTipText = "Total number of items"
'
' bindingNavigatorDeleteItem
'
Me.bindingNavigatorDeleteItem.Image = CType(resources.GetObject("bindingNavigatorDeleteItem.Image"), System.Drawing.Image)
Me.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"
Me.bindingNavigatorDeleteItem.Text = "Delete"
'
' bindingNavigatorMoveFirstItem
'
Me.bindingNavigatorMoveFirstItem.Image = CType(resources.GetObject("bindingNavigatorMoveFirstItem.Image"), System.Drawing.Image)
Me.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"
Me.bindingNavigatorMoveFirstItem.Text = "Move first"
'
' bindingNavigatorMovePreviousItem
'
Me.bindingNavigatorMovePreviousItem.Image = CType(resources.GetObject("bindingNavigatorMovePreviousItem.Image"), System.Drawing.Image)
Me.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"
Me.bindingNavigatorMovePreviousItem.Text = "Move previous"
'
' bindingNavigatorSeparator
'
Me.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"
'
' bindingNavigatorPositionItem
'
Me.bindingNavigatorPositionItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.ImageAndText
Me.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"
Me.bindingNavigatorPositionItem.Size = New System.Drawing.Size(50, 25)
Me.bindingNavigatorPositionItem.Text = "0"
Me.bindingNavigatorPositionItem.ToolTipText = "Current position"
'
' bindingNavigatorSeparator1
'
Me.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"
'
' bindingNavigatorMoveNextItem
'
Me.bindingNavigatorMoveNextItem.Image = CType(resources.GetObject("bindingNavigatorMoveNextItem.Image"), System.Drawing.Image)
Me.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"
Me.bindingNavigatorMoveNextItem.Text = "Move next"
'
' bindingNavigatorMoveLastItem
'
Me.bindingNavigatorMoveLastItem.Image = CType(resources.GetObject("bindingNavigatorMoveLastItem.Image"), System.Drawing.Image)
Me.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"
Me.bindingNavigatorMoveLastItem.Text = "Move last"
'
' bindingNavigatorSeparator2
'
Me.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"
'
' textBox1
'
Me.textBox1.Location = New System.Drawing.Point(46, 64)
Me.textBox1.Name = "textBox1"
Me.textBox1.TabIndex = 3
'
' textBox2
'
Me.textBox2.Location = New System.Drawing.Point(46, 104)
Me.textBox2.Name = "textBox2"
Me.textBox2.TabIndex = 4
'
' Form1
'
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.Add(textBox2)
Me.Controls.Add(textBox1)
Me.Controls.Add(bindingNavigator1)
Me.Name = "Form1"
CType(Me.bindingNavigator1, System.ComponentModel.ISupportInitialize).EndInit()
Me.bindingNavigator1.ResumeLayout(False)
Me.bindingNavigator1.PerformLayout()
CType(Me.bindingSource1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub 'InitializeComponent
End Class 'Form1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.Xml;
using System.IO;
using System.Text;
namespace System.Windows.Forms.BindingSourceCurrent
{
class Form1 : Form
{
private IContainer components;
private BindingNavigator bindingNavigator1;
private ToolStripButton bindingNavigatorAddNewItem;
private ToolStripLabel bindingNavigatorCountItem;
private ToolStripButton bindingNavigatorDeleteItem;
private ToolStripButton bindingNavigatorMoveFirstItem;
private ToolStripButton bindingNavigatorMovePreviousItem;
private ToolStripSeparator bindingNavigatorSeparator;
private ToolStripTextBox bindingNavigatorPositionItem;
private ToolStripSeparator bindingNavigatorSeparator1;
private ToolStripButton bindingNavigatorMoveNextItem;
private ToolStripButton bindingNavigatorMoveLastItem;
private TextBox textBox1;
private TextBox textBox2;
private BindingSource bindingSource1;
private ToolStripSeparator bindingNavigatorSeparator2;
public Form1()
{
InitializeComponent();
LoadData();
bindingNavigator1.BindingSource = bindingSource1;
}
private void LoadData()
{
// The xml to bind to.
string xml = @"<US><states>"
+ @"<state><name>Washington</name><capital>Olympia</capital></state>"
+ @"<state><name>Oregon</name><capital>Salem</capital></state>"
+ @"<state><name>California</name><capital>Sacramento</capital></state>"
+ @"<state><name>Nevada</name><capital>Carson City</capital></state>"
+ @"</states></US>";
// Convert the xml string to bytes and load into a memory stream.
byte[] xmlBytes = Encoding.UTF8.GetBytes(xml);
MemoryStream stream = new MemoryStream(xmlBytes, false);
// Create a DataSet and load the xml into it.
DataSet set = new DataSet();
set.ReadXml(stream);
// Set the DataSource to the DataSet, and the DataMember
// to state.
bindingSource1.DataSource = set;
bindingSource1.DataMember = "state";
textBox1.DataBindings.Add("Text", bindingSource1, "name");
textBox2.DataBindings.Add("Text", bindingSource1, "capital");
}
[STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources =
new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.bindingNavigator1 = new System.Windows.Forms.BindingNavigator(this.components);
this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel();
this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator();
this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox();
this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.bindingNavigator1)).BeginInit();
this.bindingNavigator1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
this.SuspendLayout();
//
// bindingNavigator1
//
this.bindingNavigator1.AddNewItem = this.bindingNavigatorAddNewItem;
this.bindingNavigator1.CountItem = this.bindingNavigatorCountItem;
this.bindingNavigator1.CountItemFormat = "of {0}";
this.bindingNavigator1.DeleteItem = this.bindingNavigatorDeleteItem;
this.bindingNavigator1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.bindingNavigatorMoveFirstItem,
this.bindingNavigatorMovePreviousItem,
this.bindingNavigatorSeparator,
this.bindingNavigatorPositionItem,
this.bindingNavigatorCountItem,
this.bindingNavigatorSeparator1,
this.bindingNavigatorMoveNextItem,
this.bindingNavigatorMoveLastItem,
this.bindingNavigatorSeparator2,
this.bindingNavigatorAddNewItem,
this.bindingNavigatorDeleteItem});
this.bindingNavigator1.Location = new System.Drawing.Point(0, 0);
this.bindingNavigator1.MoveFirstItem = this.bindingNavigatorMoveFirstItem;
this.bindingNavigator1.MoveLastItem = this.bindingNavigatorMoveLastItem;
this.bindingNavigator1.MoveNextItem = this.bindingNavigatorMoveNextItem;
this.bindingNavigator1.MovePreviousItem = this.bindingNavigatorMovePreviousItem;
this.bindingNavigator1.Name = "bindingNavigator1";
this.bindingNavigator1.PositionItem = this.bindingNavigatorPositionItem;
this.bindingNavigator1.TabIndex = 2;
this.bindingNavigator1.Text = "bindingNavigator1";
//
// bindingNavigatorAddNewItem
//
this.bindingNavigatorAddNewItem.Image =
((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image")));
this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem";
this.bindingNavigatorAddNewItem.Text = "Add new";
//
// bindingNavigatorCountItem
//
this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem";
this.bindingNavigatorCountItem.Text = "of {0}";
this.bindingNavigatorCountItem.ToolTipText = "Total number of items";
//
// bindingNavigatorDeleteItem
//
this.bindingNavigatorDeleteItem.Image =
((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image")));
this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem";
this.bindingNavigatorDeleteItem.Text = "Delete";
//
// bindingNavigatorMoveFirstItem
//
this.bindingNavigatorMoveFirstItem.Image =
((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image")));
this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem";
this.bindingNavigatorMoveFirstItem.Text = "Move first";
//
// bindingNavigatorMovePreviousItem
//
this.bindingNavigatorMovePreviousItem.Image =
((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image")));
this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem";
this.bindingNavigatorMovePreviousItem.Text = "Move previous";
//
// bindingNavigatorSeparator
//
this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator";
//
// bindingNavigatorPositionItem
//
this.bindingNavigatorPositionItem.DisplayStyle =
System.Windows.Forms.ToolStripItemDisplayStyle.ImageAndText;
this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem";
this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 25);
this.bindingNavigatorPositionItem.Text = "0";
this.bindingNavigatorPositionItem.ToolTipText = "Current position";
//
// bindingNavigatorSeparator1
//
this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1";
// bindingNavigatorMoveNextItem
//
this.bindingNavigatorMoveNextItem.Image =
((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image")));
this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem";
this.bindingNavigatorMoveNextItem.Text = "Move next";
//
// bindingNavigatorMoveLastItem
//
this.bindingNavigatorMoveLastItem.Image =
((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image")));
this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem";
this.bindingNavigatorMoveLastItem.Text = "Move last";
//
// bindingNavigatorSeparator2
//
this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(46, 64);
this.textBox1.Name = "textBox1";
this.textBox1.TabIndex = 3;
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(46, 104);
this.textBox2.Name = "textBox2";
this.textBox2.TabIndex = 4;
//
// Form1
//
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.bindingNavigator1);
this.Name = "Form1";
((System.ComponentModel.ISupportInitialize)(this.bindingNavigator1)).EndInit();
this.bindingNavigator1.ResumeLayout(false);
this.bindingNavigator1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
}
}
Compilando o código
Este exemplo requer:
- Referências aos assemblies do sistema, System.dados, System.desenho, System.Windows.Forms e System.XML.
Para obter informações sobre como criar este exemplo a partir da linha de comando para Visual Basic ou Visual C#, consulte Criando a partir da linha de comando (Visual Basic) ou Linha de comando criando com csc.exe.Você também pode construir este exemplo no Visual Studio colando o código em um novo projeto.