Como navegar por dados nos Windows Forms
Em um aplicativo do Windows, a maneira mais fácil de navegar pelos registros em uma fonte de dados é vincular um BindingSource componente à fonte de dados e, em seguida, vincular controles ao BindingSource. Em seguida, você pode usar o BindingSource método de navegação interno no tal , MoveNextMoveLastMovePrevious e MoveFirst. O uso desses métodos ajustará as Position propriedades e Current o BindingSource apropriado. Você também pode localizar um item e defini-lo como o item atual definindo a Position propriedade.
Incrementar a posição em uma fonte de dados
Defina a propriedade do para seus dados vinculados para a Position posição do BindingSource registro para ir. O exemplo a seguir ilustra o uso do método do BindingSource para incrementar a Position propriedade quando o MoveNext
nextButton
é clicado. O BindingSource está associado àCustomers
tabela de um conjuntoNorthwind
de dados .Observação
Definir a propriedade para um valor além do primeiro ou último registro não resulta em um erro, pois o .NET Framework não permitirá que você defina a Position posição para um valor fora dos limites da lista. Se, no aplicativo, for importante saber se você passou do primeiro ou do último registro, inclua a lógica para testar se a contagem de elementos de dados será excedida.
private void nextButton_Click(object sender, System.EventArgs e) { this.customersBindingSource.MoveNext(); }
Private Sub nextButton_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles nextButton.Click Me.customersBindingSource.MoveNext() End Sub
Verificar se você passou do final ou do início
Crie um manipulador de eventos para o evento PositionChanged. No manipulador, é possível testar se o valor da posição proposta excedeu a contagem de elementos de dados real.
O exemplo a seguir ilustra como testar se o último elemento de dados foi alcançado. No exemplo, se você estiver no último elemento, o botão Próximo do formulário estará desabilitado.
Observação
Lembre-se de que é necessário alterar a lista em que você está navegando no código, reabilite o botão Próximo, para que os usuários possam pesquisar a totalidade da nova lista. Além disso, esteja ciente de que o evento acima PositionChanged para o específico BindingSource com o qual você está trabalhando precisa ser associado ao seu método de manipulação de eventos. A seguir está um exemplo de um método para manipular o PositionChanged evento:
void customersBindingSource_PositionChanged(object sender, EventArgs e) { if (customersBindingSource.Position == customersBindingSource.Count - 1) nextButton.Enabled = false; else nextButton.Enabled = true; }
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
Localizar um item e defini-lo como o item atual
Localize o registro que deseja definir como o item atual. Você pode fazer isso usando o Find BindingSourcemétodo do , se sua fonte de dados implementa IBindingList. Alguns exemplos de fontes de dados que implementam IBindingList são BindingList<T> e DataView.
void findButton_Click(object sender, EventArgs e) { int foundIndex = customersBindingSource.Find("CustomerID", "ANTON"); customersBindingSource.Position = foundIndex; }
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
Confira também
.NET Desktop feedback