<
  • Главная
Статьи

C #. Елемент управління DataGridView

  1. зміст

Дана тема використовує програмний код з теми:

зміст

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 II", 25, "New York"); dataGridView1.Rows.Add ( "Petrenko PP", 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 і курсивне накреслення.

// задати шрифт в заголовку int nc; nc = dataGridView1.ColumnCount; // створити шрифт "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 (); }

пов'язані теми

1. Яке призначення елемента управління DataGridView?
2. Чи можна використовувати DataGridView безпосередньо без зв'язування його з базою даних?
3. Як програмно задати розміри DataGridView?
6. Як програмно реалізувати видалення стовпця?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью