Condividi tramite


Procedura: Esplorare i dati nei Windows Forms

In un'applicazione Windows, il modo più semplice per spostarsi tra i record in un'origine dati consiste nell'associare un componente BindingSource all'origine dati e quindi associare i controlli al BindingSource. È quindi possibile usare il metodo di spostamento predefinito nel BindingSource come MoveNext, MoveLast, MovePrevious e MoveFirst. L'uso di questi metodi regola le proprietà Position e Current del BindingSource in modo appropriato. È anche possibile trovare un elemento e impostarlo come elemento corrente impostando la proprietà Position.

Per incrementare la posizione in un'origine dati

  1. Impostare la proprietà Position del BindingSource per i dati associati alla posizione del record a cui andare. Nell'esempio seguente viene illustrato l'utilizzo del metodo MoveNext del BindingSource per incrementare la proprietà Position quando si fa clic sul nextButton. Il BindingSource è associato alla tabella Customers di un set di dati Northwind.

    Nota

    L'impostazione della proprietà Position su un valore superiore al primo o all'ultimo record non genera un errore, perché .NET Framework non consente di impostare la posizione su un valore esterno ai limiti dell'elenco. Se è importante nell'applicazione sapere se si è superato il primo o l'ultimo record, includere la logica per verificare se si supererà il conteggio degli elementi.

    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
    

Per verificare se hai superato la fine o l'inizio

  1. Creare un gestore eventi per l'evento PositionChanged. Nel gestore è possibile verificare se il valore della posizione proposta ha superato il conteggio effettivo degli elementi dati.

    Nell'esempio seguente viene illustrato come verificare se è stato raggiunto l'ultimo elemento dati. Nell'esempio, se si è all'ultimo elemento, il pulsante Successivo sul modulo è disabilitato.

    Nota

    Tenere presente che, se si modifica l'elenco nel codice, è necessario riabilitare il pulsante Avanti, in modo che gli utenti possano esplorare l'intera lunghezza del nuovo elenco. Tenere inoltre presente che l'evento PositionChanged sopra menzionato per l'BindingSource specifico con cui si sta lavorando deve essere associato con il suo metodo di gestione degli eventi. Di seguito è riportato un esempio di metodo per la gestione dell'evento PositionChanged:

    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
    

Per trovare un elemento e impostarlo come elemento corrente

  1. Trova il record che desideri impostare come elemento corrente. Puoi fare ciò usando il metodo Find di BindingSource, se l'origine dei dati implementa IBindingList. Alcuni esempi di origini dati che implementano IBindingList sono 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
    

Vedere anche