Сценарии использования элементов управления DataGridView (Windows Forms)
С помощью элемента управления DataGridView можно отображать табличные данные из различных источников данных. В простых случаях можно заполнить элемент управления DataGridView данными вручную и работать с ними с его помощью напрямую. Однако обычно данные хранятся во внешнем источнике, к которому элемент управления привязывается с помощью компонента BindingSource.
В этом разделе описываются некоторые распространенные сценарии, включающие элемент управления DataGridView.
Сценарий 1. Отображение небольших объемов данных
Для отображения данных в элементе управления DataGridView их не обязательно хранить во внешнем источнике данных. Если вы работаете с небольшим объемом данных, то можете заполнить элемент управления самостоятельно и работать с данными с его помощью. Это называется режимом без привязки. Дополнительные сведения см. в статье Практическое руководство. Создание непривязанного элемента управления DataGridView в Windows Forms.
Основные особенности сценария
- В режиме без привязки элемент управления заполняется вручную.
- Режим без привязки особенно хорошо подходит для небольших объемов данных, доступных только для чтения.
- Режим без привязки также подходит для электронных таблиц или разреженных таблиц.
Сценарий 2. Просмотр и обновление данных, хранящихся во внешнем источнике данных
Элемент управления DataGridView можно использовать как пользовательский интерфейс, через который пользователи могут получать доступ к данным, хранящимся в источнике данных, например таблице базы данных или коллекции бизнес-объектов. Дополнительные сведения см. в статье Практическое руководство. Привязка данных к элементу управления DataGridView в Windows Forms.
Основные особенности сценария
- Режим с привязкой позволяет подключаться к источнику данных, автоматически создавать столбцы на основе свойств источника данных или столбцов базы данных и автоматически заполнять элемент управления.
- Режим с привязкой подходит для сценариев интенсивного взаимодействия пользователей с данными. Данные можно форматировать для отображения, а заданные пользователем данные можно преобразовывать в формат, поддерживаемый источником данных. Можно обнаруживать ошибки форматирования при вводе данных и ошибки из-за ограничений базы данных, чтобы пользователи могли получать предупреждения и исправлять ячейки с ошибками.
- Дополнительные функциональные возможности, такие как сортировка, фиксация и переупорядочение столбцов, позволяют пользователям просматривать данные наиболее удобным для рабочего процесса способом.
- Поддержка буфера обмена позволяет пользователям копировать данные из вашего приложения в другие.
Сценарий 3. Расширенные данные
Если у вас есть особые потребности, которые стандартная модель привязки данных не удовлетворяет, вы можете управлять взаимодействием между элементом управления и данными, реализовав виртуальный режим. Реализация виртуального режима означает реализацию одного или нескольких обработчиков событий, которые позволяют элементу управления запрашивать сведения о ячейках по мере необходимости.
Например, при работе с большим объемом данных может потребоваться реализовать виртуальный режим, чтобы обеспечить оптимальную эффективность. Виртуальный режим также полезен для поддержания значений непривязанных столбцов, которые отображаются вместе со столбцами, полученными из другого источника данных.
Основные особенности сценария
- Виртуальный режим подходит для отображения очень больших объемов данных при необходимости точной настройки производительности.
Сценарий 4. Автоматическое изменение размера строк и столбцов
Если данные регулярно обновляются, можно автоматически изменять размер строк и столбцов, чтобы отображалось все содержимое. Элемент управления DataGridView предоставляет несколько вариантов, позволяющих включать или отключать ручное изменение размера, изменять размер программным способом в определенное время или изменять размер автоматически при каждом изменении содержимого. Подробнее см. в статье Варианты изменения размеров элемента управления DataGridView в Windows Forms.
Основные особенности сценария
- Изменение размера вручную позволяет пользователям настраивать высоту и ширину ячеек.
- Автоматическое изменение размера позволяет поддерживать такие размеры ячеек, при которых их содержимое никогда не обрезается.
- Программное изменение размера позволяет изменять размер ячеек в определенное время, чтобы избежать снижения производительности из-за постоянного автоматического изменения размера.
Сценарий 5. Простая настройка
Элемент управления DataGridView предоставляет множество способов изменения его внешнего вида и поведения. Подробнее см. в статье Стили ячеек элемента управления DataGridView в Windows Forms.
Основные особенности сценария
- Объекты DataGridViewCellStyle позволяют предоставлять сведения о цвете, шрифте, форматировании и расположении на нескольких уровнях, а также для отдельных элементов.
- Стили ячеек могут быть многоуровневыми и использоваться совместно несколькими элементами, что позволяет использовать код повторно.
Сценарий 6. Расширенная настройка
Элемент управления DataGridView предоставляет множество способов настройки его внешнего вида и поведения.
Основные особенности сценария
- Вы можете предоставить собственный код рисования ячеек. Дополнительные сведения см. в статье Практическое руководство. Настройка внешнего вида ячеек элемента управления DataGridView в Windows Forms.
- Вы можете предоставить собственный код рисования строк. Это полезно, например, для создания строк с содержимым, охватывающим несколько столбцов. Дополнительные сведения см. в статье Практическое руководство. Настройка внешнего вида строк элемента управления DataGridView в Windows Forms.
- Вы можете реализовать собственные классы ячеек и столбцов для настройки внешнего вида ячеек. Дополнительные сведения см. в статье Практическое руководство. Дополнительные возможности управления внешним видом и поведением ячеек и столбцов элемента управления DataGridView в Windows Forms.
- Вы можете реализовать собственные классы ячеек и столбцов для размещения элементов управления, отличных от предоставляемых встроенными типами столбцов. Дополнительные сведения см. в статье Практическое руководство. Размещение элементов управления в ячейках элемента управления DataGridView в Windows Forms.
См. также
- DataGridView
- Общие сведения об элементе управления DataGridView
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Как заполнить datagridview c

Приветствую! Знакомлюсь с контролом DataGridView. Вопрос, как заполнить его данными из некоторого источника, когда колонки, их кол-во, имена, ширина заранее подготовлены. Чтобы было нагляднее, сделал пример (ниже).
В этом DataGridView уже сформированы 4 колонки: HeaderText-свойства на скриншоте, а имена соответственно ID, Detailed, AddedDate, AddedBy.
В следующем коде получаю коллекцию объектов Report(отзыв) через EntityFramework из БД(в принципе, не суть важно каким способом).
List
foreach (v_Report report in reports)
А как мне отобразить все отзывы на DataGridView в уже сформированные колонки? Если использовать свойство DataSource, то колонки будут сгенерированы автоматически, так не годится.
Сообщение отредактировано: ifeelgood — 23.06.11, 14:41
Сообщ. #2 , 05.11.11, 12:44
Unregistered
DataGridView поддерживает List как источник информации. Пиши MyDataGridView.DataSource = reports;
Добавлено 05.11.11, 12:55
До конца не дочитал.. Можно использовать счетчик для определения номера строки и заполнять каждую ячейку нужным значением, пишем:
int counter = 0;
foreach (v_Report report in reports)
DataGridView.Rows.Add();
DataGridView.Rows[i].Cells[0].Value = report.ID; // ну или как там храняться переменные
DataGridView.Rows[i].Cells[1].Value = report.Detailed;
DataGridView.Rows[i].Cells[2].Value = report.AddedDate;
DataGridView.Rows[i].Cells[3].Value = report.AddedBy;
counter++;
>
Проблема наверняка забыта. Надеюсь кому-нибудь поможет
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- .NET: Общие вопросы
- Следующая тема
- Форум на Исходниках.RU
- Программирование
- .NET
- .NET: Общие вопросы
Как заполнить datagrid данными из базы данных в имеющиеся столбцы?

добавлять удобнее в редактировании столбцов через студию, и добавьте при загрузке формы код:
InventDataGrid.AutoGenerateColumns = false;
этот не позволит создавать лишние столбцы которые не надо показывать.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- C#
- +1 ещё
Как проверять столкновение префаба и UI панели в Unity?
- 1 подписчик
- 3 часа назад
- 15 просмотров
Вопросы с меткой [datagridview]
DataGridView — это элемент управления, позволяющий отображать данные в табличном формате, в настраиваемой сетке.
409 вопросов
Конкурсные
Неотвеченные
- Конкурсные 0
- Неотвеченные
- Цитируемые
- Рейтинг
- Неотвеченные (мои метки)
Открыть таблицу DataGridView с ComboBox из файла
Есть таблица с учениками, номерами занятий и оценками. (Оценки выставляются из коллекции комбобоксов). Сохраняется это всё таким образом (работает идеально): private void button6_Click(object sender, .
задан 27 фев 2023 в 20:21
204 показа
В dataGridView не получается вывести элементы массива C#
сообщество! Я ещё студент и имею немного опыта в WinForms, нужно по заданию сгенерировать массив из N количества случайных чисел (одномерный массив) в элемент dataGridView. При попытке сгенерировать — .
задан 9 фев 2023 в 12:32
87 показов
Вывести данные в datagridview EF Core
Здравствуйте, подскажите пжлст, хочу вывести данные из БД в datagridview , но после запуска datagridview пустой, ошибок нет, привожу данные к типу List . но не работает/ошибку не выдаёт. И ещё .
задан 3 фев 2023 в 19:34
45 показов
Как сделать фильтрацию данных в DataGridView в WinForms
Есть ComboBox с данными коллекции департаментов. Есть DataGridView с данными коллекции рабочих. Нужно, чтобы при выборе департамента в ComboBox, DataGridView отображал только тех рабочих, которые .
задан 23 янв 2023 в 21:04
Как заполнить из массива сразу несколько столбцов в DataGridView через DataSource?
Пытаюсь заполнить сразу несколько столбцов строками в DataView через DataSource. Удалось заполнить только один — код ниже. Интересно, как работает DataSource в данном случае, почему просто не .
задан 8 янв 2023 в 16:01
30 показов
Как заменить значения в строках DataGridView из автоматически сгенерированных на свои?
Кому не сложно, подскажите такой момент: есть DataGridView, столбцы которого создаются в коде. dataGridView1.Columns.AddRange( new DataGridViewTextBoxColumn() < Name = "clmID", .
задан 26 дек 2022 в 15:53
106 показов
Как быстрее всего заполнить DataTable (для DataGridView)?
Конкретным новичком себя назвать не могу, раньше уже с С# дело имела, как и с DataGridView (дальше DGV), но раньше до скорости загрузки данных дела не было (данных было мало, да и сами БД по структуре .
задан 25 дек 2022 в 12:41
55 показов
В чем ошибка фильтрации диапазона дат DataGridView SQLite?
На форме таблицы оценок нужно сделать фильтрацию по дате. Есть два DateTimePicker — стартовое и конечное значение даты. Сначала создается такая же таблица как без фильтрации, затем проходиться циклом .
задан 9 дек 2022 в 12:52
c# datagridview не сохраняет без enter
DataGridView почему то отправляет данные в БД (MS Server), только если я при вводе в табличку (при ее изменение) нажимал на Enter или если я через button update табличку. Как сделать чтобы без нажатий .
задан 29 ноя 2022 в 22:11
38 показов
Почему LINQ ищет только то что указано в одном блоке if а всё остальное нет
Приветсвую! Проблема с LINQ! Не понимаю почему он ищет только минимальный элемент а максимальный искать отказывается(это проявляется в том что таблица dataGridView не изменяеться Вот код private void .
задан 29 ноя 2022 в 19:17
Как отобразить данные в dataGridView после осуществления поиска LINQ
Перейду сразу к сути дела! Есть dataGridView, в нем изначально отображены продукты(в моем случае это еда из макдональдса по типу наггетсов, бургеров и прочего). В этом отображении показана информация .
задан 28 ноя 2022 в 10:41
58 показов
Как реализовать поиск с помощью LINQ в dataGridView?
Здраствуйте! Возникла проблема с поиском с использованием LINQ в элементе управления dataGridView В него добавлены товары. товар описан как класс. Он реализуется вот так: public class Product < .
задан 27 ноя 2022 в 18:50
Почему не работает проверка добавления в DataGridView при существовании такого же поля
Нужно создать проверку добавления или изменения учебного предмета. Если введенное название и класс уже есть то должна срабатывать ошибка, чего не происходит :c Вот сама проверка: public static bool .
задан 26 ноя 2022 в 17:37
57 показов
C# Вывод даных в datagridview с другого потока
Подскажите, в чем может быть проблема. Есть класс «NetworkModel» в котором, создается поток для прослушивания сокета, и данные которые приходят необходимо вывести в таблицу, которая .
задан 15 ноя 2022 в 9:40
237 показов
Как сортировать DataGridView программно
Ребят, подскажите, пожалуйста, в какую сторону копать или что можно использовать. Мне нужно отсортировывать столбцы таблицы dataGridView, но проблема в том, что стандартная встроенная сортировка мне .
задан 19 окт 2022 в 13:42
15 30 50 на странице
-
Важное на Мете
Связанные метки
Подписаться на ленту
Лента новых вопросов с меткой [datagridview]
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.