Sdílet prostřednictvím


Postupy: Procházení dat v rozhraní Windows Forms

V aplikaci pro Windows je nejjednodušším způsobem, jak procházet záznamy ve zdroji dat, vytvořit vazbu BindingSource komponenty ke zdroji dat a pak vytvořit vazbu ovládacích prvků na BindingSource. Pak můžete použít předdefinované navigační metody na BindingSource takové MovePreviousMoveNextMoveLast, a .MoveFirst Pomocí těchto metod upravíte Position vlastnosti a Current vlastnosti BindingSource odpovídajícím způsobem. Můžete také najít položku a nastavit ji jako aktuální položku nastavením Position vlastnosti.

Zvýšení pozice ve zdroji dat

  1. Position Nastavte vlastnost BindingSource svázaných dat na pozici záznamu, na které chcete přejít. Následující příklad znázorňuje použití MoveNext metody BindingSource zvýšení Position vlastnosti při nextButton kliknutí. Je BindingSource přidružen k Customers tabulce datové sady Northwind.

    Poznámka:

    Position Nastavení vlastnosti na hodnotu nad rámec prvního nebo posledního záznamu nemá za následek chybu, protože rozhraní .NET Framework neumožňuje nastavit pozici na hodnotu mimo hranice seznamu. Pokud je ve vaší aplikaci důležité vědět, jestli jste přešli za první nebo poslední záznam, zahrňte logiku, která otestuje, jestli překročíte počet datových prvků.

    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
    

Kontrola, jestli jste prošli koncem nebo začátkem

  1. Vytvořte obslužnou rutinu PositionChanged události pro událost. V obslužné rutině můžete otestovat, zda navrhovaná hodnota pozice překročila skutečný počet datových prvků.

    Následující příklad ukazuje, jak můžete otestovat, zda jste dosáhli posledního datového prvku. V příkladu, pokud jste na posledním prvku, tlačítko Další ve formuláři je zakázáno.

    Poznámka:

    Mějte na paměti, že pokud byste měli změnit seznam, který procházíte v kódu, měli byste znovu povolit tlačítko Další , aby uživatelé mohli procházet celou délku nového seznamu. Kromě toho mějte na paměti, že výše uvedená PositionChanged událost pro konkrétní BindingSource , se kterou pracujete, musí být přidružena k metodě zpracování událostí. Následuje příklad metody pro zpracování PositionChanged události:

    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
    

Vyhledání položky a jeho nastavení jako aktuální položky

  1. Najděte záznam, který chcete nastavit jako aktuální položku. Můžete to provést pomocí Find metody BindingSource, pokud váš zdroj dat implementuje IBindingList. Příklady zdrojů dat, které implementují IBindingList , jsou BindingList<T> a 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
    

Viz také