Сценарии использования элементов управления 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, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
.NET Desktop feedback
The .NET Desktop documentation is open source. Provide feedback here.
Обратная связь
Отправить и просмотреть отзыв по
Заполнить dataGridView
Создаем в определенной вкладке dataGridView, 5 на 5, теперь нужно внести массив int[,] array в этот gridView, пробовал конвертировать массив в 1 мерный, но данные через dataGridView.DataSource не отображаются.
Добавлено через 22 часа 28 минут
Даже когда происходит заполнение данными, ячейки пустые
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Заполнить DataGridView из Excel
Добрый вечер, у меня такая проблема, хочу экспортировать данные из excel в привязанный datagrid.
Асинхронно заполнить DataGridView
есть richtextbox. с каждой строкой производится долгая функция, результат которой она вписывает в.
Как заполнить datagridview?
ListView я всегда заполнял с помощью и этого кода: private void button17_Click(object sender.
Заполнить datagridview из цикла
Здравствуйте! Как мне заполнить datagridview результатами цикла: for (int ip = min; ip <=.
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
Можно, например, вот так:
1 2 3 4 5 6 7
for (int i = 0; i 5; i++) { for (int j = 0; j 5; j++) { dataGrid.Rows[i].Cells[j].Value = arr[i, j]; } }
Регистрация: 03.02.2017
Сообщений: 14
Так просто, а я пытался создавать DataTable-s но не получалось, спасибо, помогло!
5869 / 4746 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
Сообщение от Killiwar 
а я пытался создавать DataTable
1 2 3 4 5 6
DataGridView dataGrid = new DataGridView(); dataGrid.Parent = someTabPage; dataGrid.Dock = DockStyle.Fill; //dataGrid.RowCount = 5; не нужно //dataGrid.ColumnCount = 5; не нужно dataGrid.DataSource = GetDataTable(array);
Метод GetDataTable:
1 2 3 4 5 6 7 8 9 10 11 12 13
DataTable GetDataTable(int[,] array) { DataTable table = new DataTable(); for (int i = 0; i array.GetLength(1); i++) table.Columns.Add(); for (int i = 0; i array.GetLength(0); i++) { table.Rows.Add(table.NewRow()); for (int j = 0; j array.GetLength(1); j++) table.Rows[i][j] = array[i, j]; } return table; }
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как заполнить массив из dataGridView?
Доброго времени суток! Пытаюсь реализовать ввод матрицы с помощью dataGridView. Нашел здесь на.

Ячейки DataGridView заполнить картинками
Хочу поле в таблице заполнить картинками. Пробую вот таким способ и что-то не особо получается.

Заполнить данными combobox в datagridview
Я новичок, не пинайте сильно. Заполняю данными dataGridView1 данными из таблицы Employees.

Заполнить DataGridView по аналогии с таблицей
DataGridView анология по примеру exсel, смысл какой, ввожу дату начала работ к примеру 01.01.15 и.
Как заполнить datagridview c
При нажатие кнопки, datagridview заполняется массивом, где размер задается в textbox и значения случайные числа. И когда запускаю через обычную отладку(f5) , то таблица заполняется только одним числом, хотя должно разными. При пошаговом (f11) заполняется нормально. Помогите пожалуйста решить данный вопрос
rivate void button1_Click(object sender, EventArgs e)
int s = Convert.ToInt32(textBox1.Text);
int a = Convert.ToInt32(textBox2.Text);
dataGridView1.RowCount = s;
dataGridView1.ColumnCount = a;
var arr = new int[s, a];
Random rnd = new Random();
arr[i,j]= rnd.Next(100);
dataGridView1.Rows[i].Cells[j].Value = arr[i, j];
>
Как заполнить datagridview c
Работа с контролами в WPF приложениях немного отличается от работы в Windows.Forms. Многое похоже, но некоторые вещи сильно отличаются.
Так, вместо ID контрола используется его имя Name.
Рассмотрим простой способ заполнения. Итак, у нас есть класс SunsetTime:
public class SunsetTime < public string datestr < get; set; >public string voshod < get; set; >>
Создадим коллекцию класса SunsetTime и заполним несколькими значениями для примера:
inf.Add(new SunsetTime < voshod = "9:01:06", zahod = "16:07:38" >); inf.Add(new SunsetTime < voshod = "9:00:51", zahod = "16:08:47" >); inf.Add(new SunsetTime < voshod = "9:00:33", zahod = "16:10:00" >);
Для контрола DataGrid установим автоматическую генерацию столбцов:
dgv.AutoGenerateColumns = true;
Теперь укажем, что источником данных для контрола является коллекция inf:
Все, вот результат:

Заполнить столбцы DataGrid в WPF приложении
