Элемент управления dataGridView
Данная тема использует программный код из темы:
Содержание
- Вопрос/ответ
- 1. Какое назначение элемента управления DataGridView?
- 2. Можно ли использовать DataGridView непосредственно без связывания его с базой данных?
- 3. Как программно задать размеры DataGridView? Свойства Width, Height
- 4. Какие виды данных могут быть представлены в ячейках DataGridView?
- 5. Добавление столбца программным путем
- 6. Как программно реализовать удаление столбца? Методы Remove() и RemoveAt()
- 7. Программное добавление строки. Метод Add()
- 8. Программное удаление строки. Методы Remove() и RemoveAt()
- 9. Задание текста заголовка в заданном столбце программным путем
- 10. Установка выравнивания заголовка в заданном столбце программным путем
- 11. Установка шрифта заголовка в столбцах программным путем
- 12. Установка цвета шрифта заголовков программным путем
- 13. Установка размеров dataGridView1 программным путем
- 14. Установка ширины заданного столбца dataGridView1
- 15. Установка высоты заданной строки dataGridView1
- 16. Установка выравнивания в заданном столбце и строке
- 17. Установка шрифта, цвета символов и фона в первом столбце
- 18. Определение количества столбцов
- 19. Определение количества строк
- 20. Определение ширины заданного столбца в пикселах
- 21. Определение высоты заданной строки в пикселах
- 22. Определение номера выделенной строки. Свойство CurrentRow
- Связанные темы
Поиск на других ресурсах:
1. Какое назначение элемента управления DataGridView?
В Microsoft Visual Studio элемент управления dataGridView разработан для использования в приложениях, созданных по шаблону Windows Forms Application. Данный элемент управления позволяет организовывать данные в виде таблицы. Данные могут быть получены из базы данных, коллекции, внутренних переменных — массивов или других объектов программы.
Данный элемент управления аналогичен компоненту TStringGrid в системе визуальной разработки приложений.
Данный элемент размещен на панели инструментов ToolBox во вкладках «All Windows Forms» или «Data» (рисунок 1).
После размещения на форме, система создает объект (переменную) с именем dataGridView1. С помощью этого имени можно программно оперировать методами и свойствами этого элемента управления.
Рис. 1. Элемент управления dataGridView1 и окно Properties со свойствами
⇑
2. Можно ли использовать DataGridView непосредственно без связывания его с базой данных?
Да, можно. В DataGridView данные могут быть получены из базы данных, коллекции, внутренних структур данных (массивов, структур и т.д.).
⇑
3. Как программно задать размеры DataGridView? Свойства Width, Height
Для задания размеров DataGridView используются свойства Width и Height.
// задать размеры dataGridView1. // Высота - 200 пикселей. Ширина - 350 пикселей dataGridView1.Width = 350; dataGridView1.Height = 200;
⇑
4. Какие виды данных могут быть представлены в ячейках DataGridView?
Виды данных, которые могут быть представлены в ячейках dataGridView:
- dataGridViewButtonColumn. Ячейки представлены в виде кнопок типа Button;
- dataGridViewCheckBoxColumn. Ячейки представлены элементами управления типа CheckBox, которые позволяют выбирать несколько вариантов (опций) из набора предложенных;
- dataGridViewComboBoxColumn. Ячейки представлены элементами управления типа ComboBox, предназначенных для выбора одного из нескольких вариантов;
- dataGridViewImageColumn. Ячейки таблицы есть изображениями типа Image;
- dataGridViewLinkColumn. Ячейки таблицы представлены ссылками;
- dataGridViewTextBoxColumn. Этот вариант предлагается по умолчанию при добавлении (создании) нового столбца. В этом случае ячейки таблицы представлены в виде полей ввода. Это позволяет вводить данные в таблицу как в матрицу.
⇑
5. Добавление столбца программным путем
Добавить столбец в dataGridView можно:
- с помощью специального мастера;
- программным путем.
Столбцы в dataGridView организованы в виде коллекции Columns типа DataGridViewColumnCollection. Чтобы добавить столбец программным путем используется метод (команда) Add из коллекции Columns.
Метод Add имеет 2 варианта реализации:
int DataGridViewColumnCollection.Add(DataGridViewColumn dataGridViewColumn); int DataGridViewColumnCollection.Add(string ColumnName, string HeaderText);
где
- DataGridViewColumn – тип System.Windows.Forms.Column который добавляется;
- ColumnName – название, по которому будет осуществляться обращение к столбцу из других методов;
- HeaderText – текст, который будет отображаться в заголовке столбца.
Фрагмент кода, который добавляет два произвольных столбца следующий:
// Добавить столбец с именем column-1, заголовок столбца - "Header column - 1" dataGridView1.Columns.Add("column-1", "Header column - 1"); // Добавить столбец с именем column-2 dataGridView1.Columns.Add("column-2", "Header column - 2");
В реальных программах название столбца и его заголовка получаются из других элементов управления, например TextBox.
Для вставки столбца используется метод Insert, который имеет следующее объявление
void DataGridViewColumnCollection.Insert(int columnIndex, DataGridViewColumn dataGridViewColumn);
Вызов этого метода из программного кода аналогичен методу Add.
⇑
6. Как программно реализовать удаление столбца? Методы Remove() и RemoveAt()
Чтобы удалить столбец используется один из двух методов из коллекции Columns:
- метод RemoveAt() – удаляет столбец по заданному индексу в коллекции;
- метод Remove() – удаляет столбец по его имени.
Общий вид метода RemoveAt():
void DataGridViewColumnCollection.RemoveAt(int index);
где
- index – заданный индекс в коллекции. Индексы нумеруются с 0.
void DataGridViewColumnCollection.Remove(string ColumnName);
где
- ColumnName – название столбца (но не название заголовка столбца), которое задается в методе Add() первым параметром. Столбцы в коллекции могут иметь одинаковые значения ColumnName. Если при вызове метода Remove(), столбца с именем ColumnName нет, то генерируется исключительная ситуация.
Фрагмент кода удаления столбца с помощью метода RemoveAt():
// удаление столбца в позиции index int index; // номер столбца, который удаляется int n; // текущее количество столбцов в dataGridView // задать номер столбца, который удаляется index = 1; // определить текущее количество столбцов в dataGridView n = dataGridView1.Columns.Count; // удаление if ((n > 0) && (index >= 0) && (index < n)) { dataGridView1.Columns.RemoveAt(index); label1.Text = "Столбец удален"; } else { label1.Text = "Столбец не удален"; }
⇑
7. Программное добавление строки. Метод Add()
Добавлять строку можно одним из двух способов:
- путем непосредственного ввода с клавиатуры;
- программным путем.
Строки в DataGridView организованы в виде коллекции Rows типа dataGridViewRowCollection.
Ниже приведен фрагмент метода, добавляющего 2 произвольные строки в таблицу
// Добавить строки в таблицу if (dataGridView1.Columns.Count <= 0) { label1.Text = "Строки не добавлены"; return; } dataGridView1.Rows.Add("Ivanov I.I.", 25, "New York"); dataGridView1.Rows.Add("Petrenko P.P.", 38, "Moscow"); label1.Text = "Строки добавлены";
⇑
8. Программное удаление строки. Методы Remove() и RemoveAt()
Для удаления строки используется один из двух методов:
- метод RemoveAt() – удаляет строку по заданному индексу;
- метод Remove() – удаляет строку, которая есть входным параметром типа DataGridViewRow.
Фрагмент кода удаления строки имеет вид:
// Удалить строку int nr, nc; nc = dataGridView1.Columns.Count; // количество столбцов nr = dataGridView1.RowCount; if ((nc > 0) && (nr > 1)) { dataGridView1.Rows.RemoveAt(0); // удалить первую строку label1.Text = "Строка удалена"; } else { label1.Text = "Строка не удалена"; }
⇑
9. Задание текста заголовка в заданном столбце программным путем
Чтобы задать текст заголовка в заданном столбце используется свойство HeaderText. Фрагмент кода установки текста заголовка в столбце с индексом 0 имеет вид:
// задать текст в заголовке int nc = dataGridView1.ColumnCount; if (nc > 0) { // задать новый текст заголовке первого столбца dataGridView1.Columns[0].HeaderText = "Header - 1"; label1.Text = "Текст задан"; } else { label1.Text = "Текст не задан"; }
⇑
10. Установка выравнивания заголовка в заданном столбце программным путем
Выравнивание заголовка в столбце задается с помощью свойства HeaderCell.Style.Alignment.
Фрагмент кода установки выравнивания в заголовке столбца с индексом 0:
// выравнивание заголовка int nc; nc = dataGridView1.ColumnCount; if (nc > 0) { // задать выравнивание по центру (по горизонтали и по вертикалу) dataGridView1.Columns[0].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; label1.Text = "Выравнивание выполнено"; } else { label1.Text = "Выравнивание не выполнено"; }
⇑
11. Установка шрифта заголовка в столбцах программным путем
Для установки шрифта в заголовках столбцов используется свойство ColumnHeadersDefaultCellStyle. В этом свойстве используется свойство Font.
Во фрагменте кода создается шрифт Arial, имеющий размер 12 и курсивное начертание.
// задать шрифт в заголовке // создать шрифт "Arial", размер 12, начертание - "курсив" Font F = new Font("Arial", 12, FontStyle.Italic); if (nc > 0) { // установить шрифт заголовка dataGridView1.ColumnHeadersDefaultCellStyle.Font = F; label1.Text = "Шрифт задан"; } else { label1.Text = "Шрифт не задан"; }
⇑
12. Установка цвета шрифта заголовков программным путем
Чтобы задать цвет шрифта заголовков программным путем нужно использовать свойство ColumnHeaderDefaultCellStyle. В этом свойстве есть свойства ForeColor и BackColor.
int nc; nc = dataGridView1.ColumnCount; if (nc > 0) { // создать системный шрифт Font F = new Font("Arial", 14); // задать цвет в заголовках столбцов dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.Purple; // задать шрифт dataGridView1.Columns[0].DefaultCellStyle.Font = F; label1.Text = "Цвет заголовка изменен"; } else { label1.Text = "Цвет не изменен"; }
⇑
13. Установка размеров dataGridView1 программным путем
// задать размер dataGridView1
dataGridView1.Width = 600;
dataGridView1.Height = 150;
⇑
14. Установка ширины заданного столбца dataGridView1
// задать ширину столбца int nc; nc = dataGridView1.ColumnCount; if (nc > 0) { // задать ширину столбца с индексом 0 dataGridView1.Columns[0].Width = 70; label1.Text = "Ширина столбца задана"; } else { label1.Text = "Ширина столбца не задана"; }
⇑
15. Установка высоты заданной строки dataGridView1
// задать высоту строки int nc, nr; nc = dataGridView1.ColumnCount; nr = dataGridView1.RowCount; if ((nc > 0) && (nr > 1)) { dataGridView1.Rows[0].Height = 50; label1.Text = "Высота строки задана"; } else { label1.Text = "Высота строки не задана"; }
⇑
16. Установка выравнивания в заданном столбце и строке
// выравнивание в строках int nc, nr; nc = dataGridView1.ColumnCount; nr = dataGridView1.RowCount; if ((nc > 0)&&(nr>1)) { // выравнивание для всех строк dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight; // выравнивание для строки с индексом 0 dataGridView1.Rows[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; // выравнивание для столбца с индексом 0 dataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomLeft; }
⇑
17. Установка шрифта, цвета символов и фона в первом столбце
Чтобы задать шрифт, цвет символов и фона в первом столбце, используется свойство DefaultCellStyle столбца с индексом 0. В этом свойстве есть свойства Font, BackColor, ForeColor.
Ниже приведен фрагмент кода, который задает цвет шрифта, символов и фона в dataGridView1.
// шрифт и цвет в первом столбце int nc, nr; nc = dataGridView1.ColumnCount; nr = dataGridView1.RowCount; if ((nc > 0) && (nr > 1)) { // создать шрифт Font F = new Font("Times New Roman", 10, FontStyle.Bold); // цвет символов и фона в первом столбце dataGridView1.Columns[0].DefaultCellStyle.BackColor = Color.Red; dataGridView1.Columns[0].DefaultCellStyle.ForeColor = Color.Blue; // шрифт в первом столбце dataGridView1.Columns[0].DefaultCellStyle.Font = F; label1.Text = "Шрифт и цвет в 1-м столбце изменен"; } else { label1.Text = "Шрифт не изменен"; }
⇑
18. Определение количества столбцов
// определить количество столбцов int n; n = dataGridView1.Columns.Count; label1.Text = n.ToString();
⇑
19. Определение количества строк
// определить количество строк без строки заголовка int n; n = dataGridView1.Rows.Count; label1.Text = (n - 1).ToString();
⇑
20. Определение ширины заданного столбца в пикселах
// ширина столбца в пикселах int w; int nc; nc = dataGridView1.Columns.Count; if (nc > 0) { w = dataGridView1.Columns[0].Width; label1.Text = w.ToString(); }
⇑
21. Определение высоты заданной строки в пикселах
// определить высоту строки в пикселах int h; int nr, nc; nc = dataGridView1.Columns.Count; nr = dataGridView1.RowCount; if ((nr>1)&&(nc>0)) { h = dataGridView1.Rows[0].Height; label1.Text = h.ToString(); }
⇑
22. Определение номера выделенной строки. Свойство CurrentRow
Часто в приложениях нужно получить выделенную строку в таблице DataGridView. Для этого используется свойство CurrentRow, которое содержит всю необходимую информацию о выделенной строке. Чтобы определить позицию выделенной строки используется свойство CurrentRow.Index.
Пример. В фрагменте кода определяются значения полей выделенной строки. Предварительно осуществляется проверка в которой проверяется вообще ли строка выделена.
// 1. Проверка, есть ли строки в dataGridView1 if (dataGridView1.RowCount <= 1) return; // 2. Определение номера (позиции) выделенной строки int index = dataGridView1.CurrentRow.Index; // 3. Проверка, выделена ли вообще строка if (index == dataGridView1.RowCount - 1) { label1.Text = "Строка не выделена"; return; } // 3. Если строка выделена, то вывести информацию о ней string name = (string)dataGridView1.Rows[index].Cells[0].Value; string surname = (string)dataGridView1.Rows[index].Cells[1].Value; string telephone = (string)dataGridView1.Rows[index].Cells[2].Value; label1.Text = "Выделенная строка: " + name + "/" + surname + "/" + telephone;
⇑
Связанные темы
- Вывод таблицы базы данных Microsoft Access в компоненте dataGridView
- C#. Курсовая работа. Разработка приложения автоматизации диспетчера касс автовокзала
- Курсовая работа. Разработка программы мониторинга загрязнения окружающей среды