Como: Navegue de dados no Windows Forms
Em um aplicativo do Windows, a maneira mais fácil de navegar pelos registros de uma fonte de dados é vincular um BindingSource componente para a fonte de dados e controles de ligação para o BindingSource. Você pode usar o método de navegação interna na BindingSource como um MoveNext, MoveLast, MovePrevious e MoveFirst. Usar esses métodos ajustará a Position e Current Propriedades da BindingSource adequadamente. Você também pode encontrar um item e defina-o como o item atual, definindo a Position propriedade.
Para incrementar a posição em uma fonte de dados
Definir o Position propriedade da BindingSource para os dados vinculados para a posição do registro para ir para. O exemplo a seguir ilustra o uso de MoveNext método da BindingSource para incrementar a Position propriedade quando o nextButton é clicado. O BindingSource está associado a Customers tabela de um dataset Northwind.
Observação Definindo a Position propriedade para um valor além do primeiro ou último registro não resulta em erro, como o .NET Framework não permitirá que você definir a posição de um valor fora dos limites da lista. Se for importante em seu aplicativo para saber se você passou após o primeiro ou último registro, inclua lógica para testar se você exceder a contagem de elemento de dados.
Private Sub nextButton_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles nextButton.Click Me.customersBindingSource.MoveNext() End Sub
private void nextButton_Click(object sender, System.EventArgs e) { this.customersBindingSource.MoveNext(); }
Para verificar se você tiver passado o início ou final
Crie um manipulador de eventos para o evento PositionChanged. No manipulador, você pode testar se o valor da posição proposto excedeu a contagem de elemento de dados reais.
O exemplo a seguir ilustra como você pode testar se você atingiu o último elemento de dados. No exemplo, se você estiver no último elemento, o próximo botão no formulário está desabilitado.
Observação Lembre-se de que, você deve alterar a lista que você está navegando no código, você deve reativar o próximo botão, para que os usuários podem procurar em toda a duração da nova lista. Além disso, esteja ciente de que acima PositionChanged evento específicos do BindingSource você estiver trabalhando com precisa ser associado ao seu método de manipulação de eventos. A seguir está um exemplo de um método para tratar a PositionChanged evento:
Sub customersBindingSource_PositionChanged(ByVal sender As Object, _ ByVal e As EventArgs) If customersBindingSource.Position = _ customersBindingSource.Count - 1 Then nextButton.Enabled = False Else nextButton.Enabled = True End If End Sub
void customersBindingSource_PositionChanged(object sender, EventArgs e) { if (customersBindingSource.Position == customersBindingSource.Count - 1) nextButton.Enabled = false; else nextButton.Enabled = true; }
Para localizar um item e defina-o como o item atual
Localize o registro que você deseja definir como o item atual. Você pode fazer isso usando o Find método de BindingSource, se a fonte de dados implementa IBindingList. Alguns exemplos de dados de fontes que implementam IBindingList são BindingList<T> e DataView.
Sub findButton_Click(ByVal sender As Object, ByVal e As EventArgs) _ Handles findButton.Click Dim foundIndex As Integer = customersBindingSource.Find("CustomerID", _ "ANTON") customersBindingSource.Position = foundIndex End Sub
void findButton_Click(object sender, EventArgs e) { int foundIndex = customersBindingSource.Find("CustomerID", "ANTON"); customersBindingSource.Position = foundIndex; }
Consulte também
Conceitos
Fontes de dados suportados pelo Windows Forms
Alterar a notificação de ligação de dados do Windows Forms
Ligação de dados e o Windows Forms