Show / Hide Table of Contents

Практическое руководство. Навигация по набору данных, отображаемых в форме Windows Forms

Самый простой способ перемещения по записям в источнике данных в приложении Windows, является привязка BindingSource компонент источника данных, а затем привязать элементы управления к BindingSource. Затем можно использовать встроенные методы навигации на BindingSource таких MoveNext, MoveLast, MovePrevious и MoveFirst. С помощью этих методов настроит Position и Current свойства BindingSource соответствующим образом. Можно также найти элемент и задать его в качестве текущего элемента, задав Position свойство.

Увеличение позиции в источнике данных

  1. Задайте Position свойство BindingSource связанных данных в позиции записи, чтобы перейти к. В следующем примере демонстрируется использование MoveNext метод BindingSource для увеличения значения Position свойство при nextButton нажатии. BindingSource Связан с Customers набора данных Northwind.

    Note

    Установка Position значение за пределами первой или последней записи не приведет к ошибке, как .NET Framework не позволит вам задать положение значения, выходящего за границы списка. Если важно знать, достигнута ли первой или последней записи приложения, добавьте логику для проверки превышения количества элементов данных.

    private void nextButton_Click(object sender, System.EventArgs e)
    {
        this.customersBindingSource.MoveNext();
    }
    

Чтобы проверить, является ли начало или конец

  1. Создайте обработчик событий для события PositionChanged. В обработчике вы можете протестировать значение предлагаемом месте превысил количество элементов фактические данные.

    В следующем примере показано, как вы можете протестировать достижения последнего элемента данных. В примере, если вы находитесь в последнего элемента Далее будет отключена кнопка в форме.

    Note

    Имейте в виду, что при изменении списка, при перемещении в коде, необходимо включить Далее кнопку, чтобы пользователи могли просматривать всю длину нового списка. Кроме того, следует помнить, указанных выше PositionChanged событий для конкретного BindingSource вы работаете с должно быть связано со своим методом обработки событий. Ниже приведен пример метода обработки PositionChanged событий:

    void customersBindingSource_PositionChanged(object sender, EventArgs e)
    {
        if (customersBindingSource.Position == customersBindingSource.Count - 1)
            nextButton.Enabled = false;
        else
            nextButton.Enabled = true;
    }
    

Чтобы найти элемент и задать его в качестве текущего элемента

  1. Найдите запись, которую вы хотите задать в качестве текущего элемента. Это можно сделать с помощью Find метод BindingSource, если источник данных реализует IBindingList. Вот некоторые примеры данных источников, реализующие IBindingList являются BindingList<T> и DataView.

    void findButton_Click(object sender, EventArgs e)
    {
        int foundIndex = customersBindingSource.Find("CustomerID", "ANTON");
        customersBindingSource.Position = foundIndex;
    }
    

См. также

  • Источники данных, поддерживаемые Windows Forms
  • Получение уведомления об изменении данных, связанных с элементом управления, в Windows Forms
  • Связывание данных и Windows Forms
  • Привязка данных Windows Forms
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX