Procedura: esplorare dati in Windows FormHow to: Navigate Data in Windows Forms

In un'applicazione Windows, il modo più semplice per spostarsi tra i record in un'origine dati è associare un BindingSource componente per l'origine dati e quindi associare i controlli per il BindingSource.In a Windows application, the easiest way to navigate through records in a data source is to bind a BindingSource component to the data source and then bind controls to the BindingSource. È quindi possibile utilizzare il metodo di spostamento incorporate nel BindingSource tali un MoveNext, MoveLast, MovePrevious e MoveFirst.You can then use the built-in navigation method on the BindingSource such a MoveNext, MoveLast, MovePrevious and MoveFirst. Con questi metodi vengono adattate le Position e Current le proprietà del BindingSource in modo appropriato.Using these methods will adjust the Position and Current properties of the BindingSource appropriately. È inoltre possibile trovare un elemento e impostarlo come elemento corrente impostando la Position proprietà.You can also find an item and set it as the current item by setting the Position property.

Per incrementare la posizione in un'origine datiTo increment the position in a data source

  1. Impostare il Position proprietà del BindingSource per i dati associati alla posizione del record per passare a.Set the Position property of the BindingSource for your bound data to the record position to go to. Nell'esempio seguente viene illustrato l'utilizzo di MoveNext metodo del BindingSource per incrementare la Position proprietà quando il nextButton si fa clic.The following example illustrates using the MoveNext method of the BindingSource to increment the Position property when the nextButton is clicked. Il BindingSource è associato il Customers tabella di un set di dati Northwind.The BindingSource is associated with the Customers table of a dataset Northwind.

    Nota

    L'impostazione di Position un valore oltre il primo o ultimo record della proprietà non produce un errore, come il .NET Framework.NET Framework non consente di impostare la posizione su un valore all'esterno dei limiti dell'elenco.Setting the Position property to a value beyond the first or last record does not result in an error, as the .NET Framework.NET Framework will not allow you to set the position to a value outside the bounds of the list. Se è importante in un'applicazione per sapere se è stato oltrepassato il primo o ultimo record, includere la logica per verificare se viene superato il numero di elementi di dati.If it is important in your application to know whether you have gone past the first or last record, include logic to test whether you will exceed the data element count.

    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 sono stati passati alla fine o all'inizioTo check whether you have passed the end or beginning

  1. Creare un gestore eventi per l'evento PositionChanged.Create an event handler for the PositionChanged event. Nel gestore, è possibile verificare se il valore della posizione proposta ha superato il numero di elementi di dati effettivi.In the handler, you can test whether the proposed position value has exceeded the actual data element count.

    Nell'esempio seguente viene illustrato come è possibile verificare se è stato raggiunto l'ultimo elemento di dati.The following example illustrates how you can test whether you have reached the last data element. Nell'esempio, se si sta utilizzando l'ultimo elemento, il Avanti pulsante nel form è disabilitato.In the example, if you are at the last element, the Next button on the form is disabled.

    Nota

    Tenere presente che, se si modifica l'elenco si sposta nel codice, è necessario attivare nuovamente il Avanti pulsante, in modo che gli utenti possono cercare l'intera durata del nuovo elenco.Be aware that, should you change the list you are navigating in code, you should re-enable the Next button, so that users may browse the entire length of the new list. Inoltre, tenere presente che la precedente PositionChanged evento per la specifica BindingSource in uso deve essere associato con il metodo di gestione degli eventi.Additionally, be aware that the above PositionChanged event for the specific BindingSource you are working with needs to be associated with its event-handling method. Di seguito è riportato un esempio di un metodo per la gestione di PositionChanged evento:The following is an example of a method for handling the PositionChanged event:

    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 correnteTo find an item and set it as the current item

  1. Trovare il record che si desidera impostare come elemento corrente.Find the record you wish to set as the current item. È possibile farlo usando il Find metodo il BindingSource, se l'origine dati implementa IBindingList.You can do this using the Find method of the BindingSource, if your data source implements IBindingList. Alcuni esempi di dati di origini che implementano IBindingList sono BindingList<T> e DataView.Some examples of data sources that implement IBindingList are BindingList<T> and 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 ancheSee Also

Origini dati supportate da Windows FormData Sources Supported by Windows Forms
Notifica delle modifiche nel data binding dei Windows FormChange Notification in Windows Forms Data Binding
Data binding e Windows FormsData Binding and Windows Forms
Data binding in Windows FormWindows Forms Data Binding