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çãoObservaçã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çãoObservaçã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

Outros recursos

Ligação de dados de formulários do Windows