Перемещение по записям. Объект CurrencyManager
При выводе данных в виде отдельных записей необходимо реализовать возможность перемещения по записям. Это можно сделать с помощью экземпляра класса CurrencyManager, обеспечивающего функционирование связывания с данными. Располагаем на форме четыре кнопки и надпись в ряд следующим образом (рис. 4.54):
Рис. 4.54. Расположение кнопок
Устанавливаем следующие свойства элементов управления:
Кнопка | btnFirst | |< |
Кнопка | btnPrevious | < |
Кнопка | btnNext | > |
Кнопка | btnLast | >| |
Надпись | lblRecordsPosition |
Объявляем экземпляр cmRecords класса CurrencyManager ( в классе Form1):
CurrencyManager cmRecords;
В конструкторе формы Form1 связываем созданный объект cmRecords с таблицей "Поставщики" объекта ds:
cmRecords = (CurrencyManager)BindingContext[ds, "Поставщики"];
Создаем обработчики для событий ItemChanged и PositionChanged объекта cmRecords:
Листинг 4.21.
(html, txt)
Вызываем метод, отображающий навигацию по записям:
DisplayRecordsPosition();
Создаем этот метод:
Листинг 4.22.
(html, txt)
Добавляем методы, вызывающие метод DisplayOrdersPosition() в случае наступления событий ItemChanged и PositionChanged:
Листинг 4.23.
(html, txt)
Добавляем обработчиков для нажатий навигационных кнопок:
private void btnFirst_Click(object sender, System.EventArgs e) { cmRecords.Position = 0; }
private void btnPrevious_Click(object sender, System.EventArgs e) { cmRecords.Position--; }
private void btnNext_Click(object sender, System.EventArgs e) { cmRecords.Position++; }
private void btnLast_Click(object sender, System.EventArgs e) { cmRecords.Position = cmRecords.Count - 1; }
Запускаем приложение. Теперь можно перемещаться по записям (рис. 4.55).
Рис. 4.55. Форма с навигационными кнопками
При выводе данных в виде отдельных записей необходимо реализовать возможность перемещения по записям. Это можно сделать с помощью экземпляра класса CurrencyManager, обеспечивающего функционирование связывания с данными. Располагаем на форме четыре кнопки и надпись в ряд следующим образом (рис. 4.54):
Рис. 4.54. Расположение кнопок
Устанавливаем следующие свойства элементов управления:
Кнопка | btnFirst | |< |
Кнопка | btnPrevious | < |
Кнопка | btnNext | > |
Кнопка | btnLast | >| |
Надпись | lblRecordsPosition |
Объявляем экземпляр cmRecords класса CurrencyManager ( в классе Form1):
CurrencyManager cmRecords;
В конструкторе формы Form1 связываем созданный объект cmRecords с таблицей "Поставщики" объекта ds:
cmRecords = (CurrencyManager)BindingContext[ds, "Поставщики"];
Создаем обработчики для событий ItemChanged и PositionChanged объекта cmRecords:
cmRecords.ItemChanged+=new ItemChangedEventHandler(cmRecords_ItemChanged); cmRecords.PositionChanged+=new EventHandler(cmRecords_PositionChanged);
Листинг 4.21.
Вызываем метод, отображающий навигацию по записям:
DisplayRecordsPosition();
Создаем этот метод:
private void DisplayOrdersPosition() { lblRecordsPosition.Text = "Запись" + (cmRecords.Position + 1) + + "из" + cmRecords.Count; }
Листинг 4.22.
Добавляем методы, вызывающие метод DisplayOrdersPosition() в случае наступления событий ItemChanged и PositionChanged:
private void cmRecords_ItemChanged( object sender, ItemChangedEventArgs e) { DisplayRecordsPosition(); } private void cmRecords_PositionChanged( object sender, System.EventArgs e) { DisplayRecordsPosition(); }
Листинг 4.23.
Добавляем обработчиков для нажатий навигационных кнопок:
private void btnFirst_Click(object sender, System.EventArgs e) { cmRecords.Position = 0; }
private void btnPrevious_Click(object sender, System.EventArgs e) { cmRecords.Position--; }
private void btnNext_Click(object sender, System.EventArgs e) { cmRecords.Position++; }
private void btnLast_Click(object sender, System.EventArgs e) { cmRecords.Position = cmRecords.Count - 1; }
Запускаем приложение. Теперь можно перемещаться по записям (рис. 4.55).
Рис. 4.55. Форма с навигационными кнопками