Похожие презентации:
Компоненты отображения табличных данных
1.
БПОУ ОО Сибирский профессиональный колледжКомпоненты отображения
табличных данных
Элемент управления DataGridView
Преподаватель: Тыщенко Е.А.
2.
З 5 Объектно-ориентированную модельпрограммирования, основные принципы объектноориентированного программирования на примере
алгоритмического языка: понятие классов и объектов,
их свойств и методов, инкапсуляция и полиморфизма,
наследования и переопределения
3.
Содержание1. Что такое DataGridView и зачем его использовать?
2. Как добавить DataGridView на форму в C#
3. Основные операции с DataGridView в C#
4. Обращение к ячейкам DataGridView с использованием C#
5. Примеры использования DataGridView с C#
4.
Табличное представление данных повсеместно используется вприложениях.
Данные можно отобразить на форме разными способами: с помощью
списков, текстовых полей, таблиц и др.
Наиболее наглядным способом представления данных является
табличный с помощью элемента управления DataGridView.
Рассмотрим элемент управления DataGridView и основные приёмы
работы с ним.
5.
DataGridView — это мощный и гибкий инструмент для работы сданными в Windows Forms.
Он предоставляет удобный способ отображения и
редактирования информации в виде таблицы, а также позволяет
проводить различные операции с данными, такие как сортировка,
фильтрация и поиск.
dataGridView – это элемент управления, который может
отображать буквально любой вид данных в ячейках
прямоугольной сетки.
6.
Главное назначение dataGridView – связывание с таблицамивнешних источников данных, прежде всего с таблицами баз
данных.
Мы же сейчас рассмотрим другое его применение – в
интерфейсе, позволяющем пользователю вводить и
отображать матрицы – двумерные массивы.
7.
Объявление одномерных массивовint[ ] intArr;
Объявление ссылки
double[ ] arr;
int[] intArr = { 1, 3, -8, 19, 0, 11 };
Описание с
инициализацией
double[] arr = { 3.14, 0.0, 0.5 };
int[] intArr; // ссылка
intArr= new int[5]; // выделение памяти
for (int i = 0; i < 5; i++)
{
intArr[i] = i* i-1;
}
Описание и последующая
инициализация
8.
Объявление двумерных массивовint[,] matrix1;
double[,] matrix2;
int[,] matrix = {{1,2},{3,4}};
int n = 0, m=0;
int n=Convert.ToInt32(textBox1.Text);
int m = Convert.ToInt32(textBox2.Text);
int[,] a=new int[n,m];
//заполнение
8
Объявление ссылки
Описание с
инициализацией
Описание и последующая
инициализация
9.
Как добавить DataGridView на форму вC#
10.
Для добавления DataGridView на форму в C#, следуйтеинструкциям:
1. Откройте проект в Visual Studio и откройте форму, на которую вы хотите
добавить DataGridView.
2. Перетащите DataGridView из панели элементов на форму.
3. Настройте свойства DataGridView по вашему усмотрению.
4. Настройте источник данных для DataGridView. Можете использовать
различные источники данных, такие как массивы, списки, коллекции или
базы данных.
5. Конфигурируйте столбцы таблицы, устанавливая их свойства. Например, вы
можете добавить столбцы вручную через свойство Columns, устанавливать
ширину и заголовок столбца, указывать тип данных и т. д.
11.
Основные операции с DataGridView вC#
12.
1. Заполнение DataGridView данными:• Импорт данных из источника данных, такого как база данных или файл.
• Добавление данных вручную программно.
2. Отображение данных в DataGridView:
• Установка свойств отображения для каждого столбца таблицы.
• Применение форматирования для отображения данных в определенном виде.
3. Редактирование данных в DataGridView:
• Разрешение редактирования ячеек.
• Установка ограничений на вводимые данные.
• Отслеживание и обработка событий редактирования данных.
4. Сортировка и фильтрация данных в DataGridView:
• Создание пользовательских фильтров для отображения определенных данных.
• Сортировка данных по одному или нескольким столбцам.
5. Удаление данных из DataGridView:
• Удаление строк или столбцов таблицы.
• Очистка всех данных из таблицы.
6. Обработка событий в DataGridView:
• Отслеживание изменений данных.
• Обработка щелчков мыши и других событий пользовательского ввода.
13.
DataGridView - представляет собой таблицу для редактирования данныхПри размещении на форме он сначала выглядит так:
Если окна DataGridView Tasks нет, то отобразить его можно щелкнув мышкой
по стрелке на верхней границе компонента.
14.
DataGridView - представляет собой прямоугольный массив ячеек, которыйможно рассматривать как коллекцию строк или столбцов.
Rows - коллекция строк, - имеет тип DataGridRowCollection
Columns - коллекция столбцов, - тип DataGridColumnCollection
Оба свойства индексируются как массивы для доступа к конкретной
строке/столбцу, нумерация с нуля.
Cells - коллекция ячеек
15.
Добавление столбцов в таблицуДобавить столбец в DataGridView можно:
1. с помощью специального мастера;
2. с помощью свойства Columns
3. программно.
16.
Добавление столбца с помощьюспециального мастера
1. вызвать меню «DataGridView Tasks» с помощью клика на стрелке вправо
(правая верхняя часть прямоугольной области dataGridView1);
2. в меню «DataGridView Tasks» выбрать команду «Add Column…». В
результате откроется окно «Add Column»,в котором можно настроить
название колонки, тип данных колонки, название заголовка и т.д.
17.
Добавления столбцов в таблицус помощью свойства Columns
В окне свойств установить свойство Columns (щелкнуть по кнопке с
многоточием) и в появившемся окне нажать кнопку Add.
2
3
1
4
18.
Добавления столбцов в таблицу программноЧтобы добавить столбец программным путем используется метод
(команда) Add из коллекции Columns.
// Добавить столбец с именем column-1,
// заголовок столбца - "Header column - 1"
dataGridView1.Columns.Add("column-1", “Столбик");
19.
Добавления столбцов в таблицу программноЧтобы добавить столбец программным путем используется метод
(команда) Add из коллекции Columns.
// Настройка столбцов
dataGridView1.ColumnCount = 3;
dataGridView1.Columns[0].Name = "ID";
dataGridView1.Columns[1].Name = "Имя";
dataGridView1.Columns[2].Name = "Возраст";
20.
Определение количества столбцовОпределить текущее количество столбцов в dataGridView
int n = dataGridView1.Columns.Count;
label1.Text =n.ToString();
21.
Удаление столбцов из таблицы1. Чтобы удалить столбец, нужно в окне DataGridView Tasks
перейти по ссылке Edit Columns и в появившемся окне нажать
кнопку Remove.
2. Можно также воспользоваться свойством Columns.
22.
Удаление столбцов из таблицыЧтобы удалить столбец используется один из двух методов из
коллекции Columns:
1. метод RemoveAt() – удаляет столбец по заданному индексу в
коллекции;
dataGridView1.Columns.RemoveAt(1);
2. метод Remove() – удаляет столбец по его имени
dataGridView1.Columns.Remove("head1");
23.
Настройка свойств столбцов в DataGridViewName - имя столбца;
AutoSizeMode - подгонка ширины столбца по
его содержимому
Resizable - разрешает менять ширину
столбца
Frozen - фиксация столбца (столбец не
передвигается при прокручивании таблицы)
SortMode - сортировка данных в таблице по
этому столбцу
HeaderText - текст заголовка столбца
ToolTipText - всплывающая подсказка для
столбца
Width - ширина поля
Visible - делает столбец невидимым
MaxInputLength - максимально вводимая
длина текста
MinimumWidth - минимальная ширина
столбца
ReadOnly - блокировка столбца для
редактирования данных
24.
Сортировка данных столбцов в DataGridViewДля этого используется метод Sort, имеющий следующий синтаксис:
DataGridView.Sort(<Имя столбца>, <Порядок сортировки>)
• DataGridView - это имя объекта,
• <Имя столбца> - это имя столбца (свойство Name ) по которому происходит
сортировка записей в таблице,
• <Порядок сортировки> определяет порядок сортировки и может принимать
два значения:
- System.ComponentModel.ListSortDirection.Ascending - сортировка по
возрастанию;
- System.ComponentModel.ListSortDirection.Descending - сортировка по
убыванию.
25.
Добавление строк в таблицуДобавлять строку можно одним из двух способов:
1. Вставка напрямую через пользовательский интерфейс
Если свойство AllowUserToAddRows DataGridView установлено в true (что
является
значением
по
умолчанию),
пользователи
могут
добавлять строки напрямую через интерфейс DataGridView.
2. Добавление строки программно
Чтобы добавить строку программно, используйте метод Rows.Add().
dataGridView1.Rows.Add();
26.
Добавление строк в таблицуdataGridView1.Rows.Add("Ivan", 25, "OMSK");
private void button1_Click(object sender, EventArgs e)
{
// Создаем новый массив с данными для строки
string[] newRow = { "3", "Алексей", "28" };
// Добавляем строку в DataGridView
dataGridView1.Rows.Add(newRow);
}
27.
Удаление строк из таблицыДля удаления строки используется один из двух методов:
метод RemoveAt() – удаляет строку по заданному индексу;
dataGridView1.Rows.RemoveAt(0);
удаление всех строк из dataGridView1
while (0 != dataGridView1.RowCount)
{
dataGridView1.Rows.RemoveAt(0);
}
28.
Удаление строк из таблицыprivate void button4_Click(object sender, EventArgs e)
{
int nr, nc;
nc = dataGridView1.Columns.Count; // количество столбцов
nr = dataGridView1.RowCount;
if ((nc > 0) && (nr > 1))
{
dataGridView1.Rows.RemoveAt(0); // удалить первую строку
label1.Text = "Строка удалена";
}
else
{
label1.Text = "Строка не удалена";
}
}
29.
Количество строк и столбцов в таблицеОпределить количество столбцов
int n = dataGridView1.Columns.Count;
label1.Text = n.ToString();
Определить количество строк
int n = dataGridView1.Rows.Count;
label1.Text = (n - 1).ToString();
30.
Обращение к ячейкам DataGridView сиспользованием C#
31.
Индексаторы таблицы DataGridViewДанные элемента управления DataGridView отображаются в прямоугольном
таблице ячеек, которые можно представить в виде
коллекции строк или столбцов.
Каждый столбец ячеек имеет в верхней части ячейку
заголовка, которая, как правило, содержит идентифицирующий этот столбец
текст, а в начале каждой строки расположена ячейка заголовка строки.
32.
Индексаторы таблицы DataGridViewОбращение к строкам и столбцам ячеек выполняется через
свойства объекта DataGridView.
Свойство Rows возвращает значение типа DataGridRowCollection,
представляющее коллекцию всех строк, а обращение к конкретной
строке выполняется с помощью индекса.
dataGridView1.Rows[2]
ссылка на отдельную строку
33.
Индексаторы таблицы DataGridViewИндексация столбцов (Columns) и строк (Rows) идет
относительно нуля.
• Столбец с индексом 0 самый левый, и строка с индексом 0 самая
верхняя.
• Количество строк можно получить через свойство RowCount.
34.
Индексаторы таблицы DataGridViewСвойство Columns элемента управления возвращает значение типа
DataGridViewColumnCollection, которое также можно индексировать
для обращения к конкретному столбцу.
dataGridView1.Columns[2]
ссылка на отдельный столбец
Индексация строк и столбцов
осуществляется, начиная с нуля.
35.
Индексаторы таблицы DataGridViewСвойство Cells объекта DataGridRowCollection представляет
коллекцию, содержащую ячейки строки, и это свойство можно
индексировать для получения доступа к конкретной ячейке в
строке.
dataGridView1.Rows[2].Cells[2]
ссылка на конкретную ячейку
36.
Индексаторы таблицы DataGridViewДля обращения к ячейке в DataGridView необходимо указать
номер строки и номер столбца.
//№ строки добавляем в первый столбец Cells[0]
int a=56;
dataGridView1.Rows[0].Cells[0].Value = a.ToString();
//текст добавим во второй столбец Cells[1]
dataGridView1.Rows[0].Cells[1].Value = "пример текста";
Value - значение
37.
Как добраться до числовых значений матрицы?for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
{
A[i, j] = Conver.ToInt32(dataGridView1.Rows[i].Cells[j].Value);
}
Как внести данные в ячейку?
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
{
dataGridView1.Rows[i].Cells[j].Value = A[i,j].ToString();
}
38.
Установка размера таблицы(массива)…
if ((textBox1.Text!="")&&(textBox2.Text!=""))
{
n= Convert.ToInt32(textBox1.Text);
m = Convert.ToInt32(textBox2.Text);
//Чистка столбцов компонента DataGridView, если они не пусты
dataGridView1.Columns.Clear();
//Заполнение компонента DataGridView столбцами
dataGridView1.ColumnCount = n;
//Заполнение компонента DataGridView строками
dataGridView1.RowCount = m;
}
else
{
MessageBox.Show( "Заполните, пожалуйста, данные", "Ошибка ввода данных" ); }
39.
Cчитывание данных из ячеек таблицы изанесение их в массив
private void button1_Click(object sender, EventArgs e)
{
n = Convert.ToInt32(textBox1.Text);
m = Convert.ToInt32(textBox2.Text);
//Чистка столбцов компонента DataGridView, если они не пусты
dataGridView1.Columns.Clear();
//Заполнение компонента DataGridView столбцами
dataGridView1.ColumnCount = m;
//Заполнение компонента DataGridView строками
dataGridView1.RowCount = n;
A = new int[n, m];
}
40.
Заполнение массива случайными числами ивывод их в ячейки таблицы
int [,] A; //глобальное объявление
…
…
private void button2_Click(object sender, EventArgs e)
{
Random rnd = new Random();
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
{
A[i, j] = rnd.Next(-20, 20);
dataGridView1.Rows[i].Cells[j].Value = A[i,j].ToString();
}
}
41.
Выделение ячейки таблицы другим цветомint [,] A;
…
private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
if (A[i,j] == 0)
{
dataGridView1.Rows[i].Cells[j].Style.BackColor = System.Drawing.Color.Red;
}
}
dataGridView1.Rows[i].Cells[j].Style.BackColor = System.Drawing.Color.White;
42.
Установка текста ячейки заголовка столбцаСвойство HeaderText используется для изменения текста в
заголовке столбца.
dataGridView1.Columns[0].HeaderText = "Имя";
dataGridView1.Columns[1].HeaderText = "Телефон";
dataGridView1.Columns[2].HeaderText = "Город";
dataGridView1.Columns[3].HeaderText = "Страна";
dataGridView1.Columns[4].HeaderText = "Адрес";
43.
Установка подсказок для столбцовСвойство ToolTipText используется для подсказок.
dataGridView1.Columns[0].ToolTipText = "Имя пользователя";
dataGridView1.Columns[1].ToolTipText = "Телефонный номер ";
44.
//заполняем элементы массива, данные берём из ячеек таблицыA[i, j]= Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value);
45.
Запрет добавления строк в таблицуДля того чтобы запретить добавление пользователем строк в
dataGridView нужно использовать свойство AllowUserToAddRows,
которому задать значение false.
46.
Редактирование содержимого ячейки в DataGridViewДля редактирования содержимого ячейки в DataGridView
необходимо установить свойство ReadOnly ячейки в значение
false.
// Установка ячейки с координатами (rowIndex, columnIndex) в режим
редактирования
dataGridView.Rows[rowIndex].Cells[columnIndex].ReadOnly = false;
47.
Основные свойства dataGridViewRowCount
– число строк в таблице.
(Не отражается в окне свойств)
ColumnCount
– число столбцов в таблице.
RowHeadersVisible
– определяет, выводится ли столбец с заголовками
строк (true – выводится, false – нет).
ColumnHeadersVisible
– определяет, выводится ли строка с заголовками
столбцов (true – выводится, false – нет).
CurrentCell
– делает некоторую ячейку активной или
обращается к активной ячейке.
48.
49.
Пример. Построить таблицу Пифагора.50.
Пример. Построить таблицу Пифагора.1 шаг – Создание сетки
dataGridView1.ColumnCount = 9;
dataGridView1.RowCount = 9;
2 шаг – Установка ширины колонок
for(int i=0;i<9;i++)
{
dataGridView1.Columns[i].Width = 40;
}
51.
3 шаг – вывод надписи в заголовки строки\ и столбцовfor (int i = 0; i < 9; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = (i+1).ToString();
dataGridView1.Columns[i].HeaderCell.Value = (i+1).ToString();
}
4 шаг – вывод данных в сетку
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
{
dataGridView1.Rows[i].Cells[j].Value = ((i+1)*(j+1)).ToString();
}
52.
Нужно сделать так, чтобы в чётных строках закрашивалисьчётные ячейки (фон если хотите), а в нечётных строках - нечётные
ячейки.
{
//Color clBlack =Color.Blue; -- обьявлние переменной цвета
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
{
if (i%2==j%2) // шахматные ячейки и белый текст на чёрном фоне
{
dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.Black;
dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.White;
}
else
dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.White;
}
}
53.
DataGridView и картинкиdataGridView1.RowCount = 3;
DataGridViewImageColumn img = new
DataGridViewImageColumn();
img.Name = "imageColumn";
dataGridView1.Columns.Add(img);
Image i = Image.FromFile(@"c:\1.png");
dataGridView1.Rows[0].Cells["imageColumn"].Value = i;
i = Image.FromFile(@"c:\2.png");
dataGridView1.Rows[1].Cells["imageColumn"].Value = i;
Но картинка не поместилась в ячейку
Что делать?
54.
Надо добавить строчку, которая автоматически корректируетвысоту строк в соответствии с их содержимым при каждом
изменении содержимого.
dataGridView1.RowCount = 3;
DataGridViewImageColumn img = new DataGridViewImageColumn();
img.Name = "imageColumn";
dataGridView1.Columns.Add(img);
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
Image i = Image.FromFile(@"c:\1.png");
dataGridView1.Rows[0].Cells["imageColumn"].Value = i;
i = Image.FromFile(@"c:\2.png");
dataGridView1.Rows[1].Cells["imageColumn"].Value = i;
55.
Текст выводится, но не помещается в ячейкуprivate void button1_Click(object sender, EventArgs e)
{
dataGridView1.RowCount = 3;
dataGridView1.Rows[0].Cells[0].Value = "Мама мыла раму!!!";
}
Надо добавить строчки,
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.RowCount = 3;
this.dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
dataGridView1.Rows[0].Cells[0].Value = "Мама мыла раму!!!";
}
Разрешающие
Переносить строки
Автоматическая
установка
высоты строки
56.
Надо добавить строчку, которая автоматически корректируетширину текста строк в заголовке строки и в соответствии с их содержимым
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.RowHeadersWidthSizeMode =
DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
for (int i = 0; i < 3; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = "dfjgkjkljkljkljk ljkljkljlkjkljkl";
dataGridView1.Columns[i].HeaderCell.Value = "dddddddddddd ddddddddddd ddddddd";
}
}
57.
Посчитать количествоэлементов в столбиках
больших числа 2
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int i, j;
Random rnd = new Random();
int[,] A;
int kol = 0;
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.ColumnCount = 3;
dataGridView1.RowCount = 6;
for (int i = 0; i < 9; i++)
{
dataGridView1.Columns[i].Width = 40;
}
}
58.
Посчитать количествоэлементов в столбиках
больших числа
2(продолжение)
private void button1_Click(object sender, EventArgs e)
{
A = new int[6,3];
for (i = 0; i < 6; i++)
for (j = 0; j < 3; j++)
{
A[i, j] = rnd.Next(2, 6);
dataGridView1.Rows[i].Cells[j].Value = A[i, j].ToString();
}
}
private void button2_Click(object sender, EventArgs e)
{
for (j = 0; j <3; j++)
{ kol = 0;
for (i = 0; i <6; i++)
{if (A[i, j] > 2)
{
kol++;
}
}
textBox1.Text += kol.ToString()+" ";
}
}