Porady: nawigowanie w danych w formularzach systemu Windows
W aplikacji systemu Windows najprostszym sposobem nawigowania po rekordach w źródle danych jest powiązanie BindingSource składnika ze źródłem danych, a następnie powiązanie kontrolek z elementem BindingSource. Następnie można użyć wbudowanej metody nawigacji w BindingSource takich elementach MoveNext, MoveLastMovePrevious i MoveFirst. Użycie tych metod dostosuje Position właściwości BindingSource i Current odpowiednio. Możesz również znaleźć element i ustawić go jako bieżący element, ustawiając Position właściwość.
Aby zwiększać położenie w źródle danych
Position Ustaw właściwość dla powiązanych BindingSource danych na pozycję rekordu, aby przejść do. Poniższy przykład ilustruje użycie MoveNext metody , BindingSource aby zwiększać Position właściwość po kliknięciu
nextButton
. Element BindingSource jest skojarzony z tabeląCustomers
zestawu danychNorthwind
.Uwaga
Position Ustawienie właściwości na wartość spoza pierwszego lub ostatniego rekordu nie powoduje błędu, ponieważ program .NET Framework nie pozwoli ustawić pozycji na wartość spoza granic listy. Jeśli w aplikacji ważne jest, aby wiedzieć, czy minęło pierwszy, czy ostatni rekord, dołącz logikę do przetestowania, 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 upłynął koniec, czy na początku
Utwórz procedurę obsługi zdarzeń dla PositionChanged zdarzenia. 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.
Uwaga
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 PositionChanged zdarzenie dla określonego BindingSource , z którym pracujesz, musi być skojarzone z metodą obsługi zdarzeń. Poniżej przedstawiono przykład metody obsługi PositionChanged zdarzenia:
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 Find metody BindingSource, jeśli źródło danych implementuje IBindingListelement . Niektóre przykłady źródeł danych, które implementują 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ż
.NET Desktop feedback
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla