![](/user_photo/2706_HbeT2.jpg)
- •Лабораторная работа 10 Настройка табличных форм для отображения и редактирования данных из бд под пользовательские требования на примере компонента DataGridView Теоретические сведения
- •Привязка данных
- •Общая архитектура
- •Колонки, строчки, ячейки... Добавляем колонки
- •1. Источник данных доступен во время разработки
- •2. Отсутствие источника данных в дизайн-тайм
- •3. Готовый источник данных, подключаемый во время исполнения
- •4. Отсутствие источника данных во время исполнения
- •Добавляем строки
- •Заносим данные в ячейки. Режим свободных данных.
- •Работа в виртуальном режиме
- •Как работает DataGridViewCell
- •Значения ячеек
- •Форматирование для отображения
- •Отрисовка
- •Разбор вводимого значения
- •Шесть типов встроенных колонок
- •DataGridViewTextBoxCell
- •DataGridViewLinkColumn
- •DataGridViewButtonColumn
- •DataGridViewCheckBoxColumn
- •DataGridViewComboBoxColumn
- •DataGridViewImageColumn
- •Если вам хочется задать значения ячеек новой строки по умолчанию, это делается в обработчике события DefaultValueNeeded. Управление размером колонок и строк
- •Управление шириной колонок
- •Управление высотой строк
- •Ход работы
Управление высотой строк
Управление высотой строк возможно только на уровне всего grid-а через свойство AutoSizeRowsMode (тип – перечисление DataGridViewAutoSizeRowsMode). Упомянутое перечисление весьма похоже по составу на DataGridViewAutoSizeColumnMode и предлагает шесть режимов автоподбора высоты строки и один "ручной" режим. По умолчанию автоподбор высоты для строк выключен. Конкретные названия членов перечисления можно посмотреть в MSDN.
В разговоре об автоподборе высоты строки нельзя не коснуться важного свойства каждой отдельной ячейки, точнее, свойства ее стиля, (о стилях речь еще впереди) WrapMode (тип – перечисление DataGridViewTriState), доступного через свойство Style. Если его установить в DataGridViewTriState.True, то слишком длинная строка, не вмещающаяся в границы ячейки, будет переноситься. Но такой перенос вовсе не означает автоматической подгонки высоты ячейки по высоте всего "параграфа". Тут-то очень пригодится один из режимов автоформатирования высоты, хотя бы тот жеAllCells:
_grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; _grid.Rows[7].Cells[0].Style.WrapMode = DataGridViewTriState.True; |
Если хочется задать перенос не для одной ячейки, а для всей колонки, нужно либо задать перенос в свойстве колонки DefaultCellStyle, либо задать стиль для ячейки, помещенной в свойство колонки CellTemplate.
Ход работы
Для выполнения данной работы необходимо использовать проект приложения БД, разработанный в ходе выполнения предыдущей лабораторной работы.
В наборе таблиц, разработанных и реализованных вами ранее, выбрать одну таблицу, наиболее пригодную, с вашей точки зрения, для демонстрации результатов настройки табличной формы под запросы пользователя и наглядного отображение данных различного типа.
Создать объект класса DataGridView на основе выбранной вами таблицы, и выполнить над ним следующие действия: назначить различные режимы отображения столбцов и записей – текста заголовков, цветов ячеек, выравнивания и поведения ячеек.
Добавить в табличную форму кнопки, независимые переключатели, распахивающиеся списки.
Обеспечить отрисовку данных в ячейках различными цветами в зависимости от значений самих данных.