Comment : naviguer au sein des données dans les Windows Forms
Dans une application Windows, le moyen le plus simple de parcourir les enregistrements d’une source de données consiste à lier un BindingSource composant à la source de données, puis à lier des contrôles au BindingSourcefichier . Vous pouvez ensuite utiliser la méthode de navigation intégrée sur ce BindingSource type MoveNext, MoveLastMovePrevious et MoveFirst. L’utilisation de ces méthodes ajuste les propriétés et Current les Position propriétés appropriéesBindingSource. Vous pouvez également trouver un élément et le définir comme élément actif en définissant la Position propriété.
Pour incrémenter la position dans une source de données
Définissez la Position propriété de BindingSource vos données liées sur la position d’enregistrement à atteindre. L’exemple suivant illustre l’utilisation de la MoveNext méthode de l’incrémentation BindingSource de la Position propriété lorsque le
nextButton
clic est fait. Il BindingSource est associé à laCustomers
table d’un jeu de donnéesNorthwind
.Remarque
La définition de la Position propriété sur une valeur au-delà du premier ou du dernier enregistrement n’entraîne pas d’erreur, car .NET Framework ne vous permet pas de définir la position sur une valeur en dehors des limites de la liste. S’il est important dans votre application de savoir si vous avez dépassé le premier ou le dernier enregistrement, incluez la logique pour tester si vous dépasserez le nombre d’éléments de données.
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
Pour case activée si vous avez passé la fin ou le début
Créez un gestionnaire d'événements pour l'événement PositionChanged. Dans le gestionnaire, vous pouvez tester si la valeur de position proposée a dépassé le nombre réel d’éléments de données.
L’exemple suivant montre comment tester si vous avez atteint le dernier élément de données. Dans l’exemple, si vous êtes au dernier élément, le bouton Suivant du formulaire est désactivé.
Remarque
N’oubliez pas que si vous modifiez la liste que vous naviguez dans le code, vous devez réactiver le bouton Suivant afin que les utilisateurs puissent parcourir toute la longueur de la nouvelle liste. En outre, sachez que l’événement ci-dessus PositionChanged pour l’élément spécifique BindingSource avec lequel vous travaillez doit être associé à sa méthode de gestion des événements. Voici un exemple de méthode permettant de gérer l’événement 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
Pour rechercher un élément et le définir comme élément actif
Recherchez l’enregistrement que vous souhaitez définir comme élément actif. Vous pouvez le faire à l’aide de la Find méthode du , si votre source de données implémente IBindingList.BindingSource Voici quelques exemples de sources de données qui implémentent IBindingList et BindingList<T>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
Voir aussi
.NET Desktop feedback