Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W aplikacji systemu Windows najprostszym sposobem nawigowania po rekordach w źródle danych jest powiązanie składnika BindingSource ze źródłem danych, a następnie powiązanie kontrolek z BindingSource. Następnie możesz użyć wbudowanej metody nawigacji na BindingSource, takich jak MoveNext, MoveLast, MovePrevious i MoveFirst. Użycie tych metod odpowiednio dostosuje właściwości Position i CurrentBindingSource. Element można również znaleźć i ustawić jako bieżący element, ustawiając właściwość Position.
Zwiększenie pozycji w źródle danych
Ustaw właściwość Position elementu BindingSource dla powiązanych danych, wskazując pozycję rekordu, do której należy przejść. Poniższy przykład pokazuje użycie metody MoveNext w kontekście BindingSource, aby zwiększyć właściwość Position po kliknięciu
nextButton
. BindingSource jest skojarzona z tabeląCustomers
zestawu danychNorthwind
.Notatka
Ustawienie właściwości Position na wartość poza pierwszym lub ostatnim rekordem nie powoduje błędu, ponieważ program .NET Framework nie pozwoli ustawić pozycji na wartość spoza granic listy. Jeśli w Twojej aplikacji ważne jest, aby wiedzieć, czy minąłeś pierwszy lub ostatni rekord, dołącz logikę, aby sprawdzić, czy liczba elementów danych zostanie przekroczona.
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
Aby sprawdzić, czy przekroczyłeś koniec lub początek
Utwórz procedurę obsługi zdarzeń dla zdarzenia PositionChanged. W procedurze obsługi można sprawdzić, czy proponowana wartość pozycji przekroczyła rzeczywistą liczbę elementów danych.
W poniższym przykładzie pokazano, jak można sprawdzić, czy osiągnięto ostatni element danych. W tym przykładzie, jeśli jesteś w ostatnim elemecie, przycisk Dalej w formularzu jest wyłączony.
Notatka
Należy pamiętać, że jeśli zmienisz listę, którą przechodzisz w kodzie, ponownie włącz przycisk Dalej, aby użytkownicy mogli przeglądać całą długość nowej listy. Ponadto należy pamiętać, że powyższe zdarzenie PositionChanged dla konkretnego BindingSource, nad którym pracujesz, musi być skojarzone z jego metodą obsługi zdarzeń. Poniżej przedstawiono przykład metody obsługi zdarzenia 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
Aby znaleźć element i ustawić go jako bieżący element
Znajdź rekord, który chcesz ustawić jako bieżący element. Można to zrobić przy użyciu metody Find z BindingSource, jeśli źródło danych implementuje IBindingList. Niektóre przykłady źródeł danych implementujących IBindingList to BindingList<T> i 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
Zobacz też
- Źródła danych obsługiwane przez Windows Forms
- powiadomienie o zmianie w powiązania danych formularzy systemu Windows
- Powiązanie danych z formularzami systemu Windows
- Wiązanie danych w Windows Forms
.NET Desktop feedback