20. Элементы управления для работы с таблицами в экранных формах.
Класс DataGridView
Класс DataGridView
используется для отображения данных в виде таблицы. Данные могут вводиться пользователем в ходе работы программы, генерироваться программой, или быть привязаны к базе данных на удалённом сервере. DataGridView
можно разместить на экранной форме приложения WinForms и задать его параметры при помощи редактора форм.
DataGridView
содержит коллекции Rows
и Columns
содержащие объекты строк и столбцов соответственно. Добавление элементов в таблицу показано в следующем примере:
public void setupTable()
{
// Установка количества столбцов
dataGridView1.ColumnCount = 2;
// Разрешение на создание строк (записей в таблице) пользователем
dataGridView1.AllowUserToAddRows = true;
// Задание заголовков столбцов
dataGridView1.Columns[0].HeaderText = "Страна";
dataGridView1.Columns[1].HeaderText = "Столица";
//Добавление строк при помощи перегруженного метода Add(params object[] values)
dataGridView1.Rows.Add("Россия", "Москва");
dataGridView1.Rows.Add("США", "Вашингтон");
dataGridView1.Rows.Add("Япония", "Токио");
}
Данный код создаст такую таблицу
Можно видеть, что последняя строка была добавлена пользователем и находится в состоянии редактирования
Пример суммирования значений в таблице:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Установка количества столбцов
dataGridView1.ColumnCount = 3;
// Разрешение на создание строк (записей в таблице) пользователем
dataGridView1.AllowUserToAddRows = true;
// Задание заголовков столбцов
dataGridView1.Columns[0].HeaderText = "Страна";
dataGridView1.Columns[1].HeaderText = "Столица";
dataGridView1.Columns[1].HeaderText = "Число жителей";
//Добавление строк при помощи перегруженного метода Add(params object[] values)
dataGridView1.Rows.Add("Россия", "Москва", 10);
dataGridView1.Rows.Add("США", "Вашингтон", 50);
dataGridView1.Rows.Add("Япония", "Токио", 1002);
}
public int gridSum()
{
int sum = 0;
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
sum += (int)dataGridView1.Rows[i].Cells[2].Value;
}
return sum;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(String.Format("Сумма жителей: {0}", gridSum()));
}
}