Как добавить строку в DataGridView в языке c#

Wise

Green Team
19.01.2018
32
12
BIT
0
Как добавить новую строку в DataGridView?

Из этой статьи Вы узнаете, как добавить строку в DataGridView.

И так, как обычно для начала создадим простое Windows Forms приложение на языке c#, после чего добавим на форму: DataGridView (dgv), кнопку и textBox.

28469


Чтобы добавить новую строку в DataGridView нужно воспользоваться методом Add, например:
C#:
private void button1_Click(object sender, EventArgs e)
{
dgv.Rows.Add(textBox1.Text);
}
Но, если сейчас выполнить данный код, то на экране появится
сообщение об ошибке:
No row can be added to a DataGridView
control that does not have columns. Columns must be added
first
Проблема заключается в том, что у нас нет колонок, исправим это.
C#:
private void button1_Click(object sender, EventArgs e)
{
//создаём и добавляем две колонки
dgv.Columns.Add("ID", "Id");
dgv.Columns.Add("Name", "Name");
}
Первый параметр — это имя колонки, а второй — это
название колонки, которое будет отображаться в DataGridView.

Снова попробуем добавить строку в DataGridView.
C#:
private void button1_Click(object sender, EventArgs e)
{
//1. Создаём и добавляем колонки
//2. Добавляем строку
int rowNumber = dgv.Rows.Add();
//3. Заполняем ячейки
dgv.Rows[rowNumber].Cells["ID"].Value = rowNumber;
dgv.Rows[rowNumber].Cells[1].Value = textBox1.Text;
}
Либо можно сразу же передать значения в качестве параметров, например:
dgv.Rows.Add(0, textBox1.Text);
результат

28470


Теперь всё в порядке задача решена.

Здесь стоит обратить внимание на один важный момент. По умолчанию в DataGridView рядом с пунктом Enable Adding включена галочка, которая даёт возможность пользователям вручную добавлять строки прямо в самом элементе DataGridView.

28471


Но также её включение приводит к тому, что каждый раз, перед
выполнением метода Add, в коллекцию строк будет автоматически
добавляться новая строка.

28472


Поэтому в данном примере мы можем вообще не вызывать метод Add, а
сразу же заполнить ячейки уже существующей строки нужными нам
значениями, например:
C#:
private void button1_Click(object sender, EventArgs e)
{
//1. Добавляем колонки
//2. Строка уже добавлена!
//3. Заполняем ячейки
dgv.Rows[0].Cells["ID"].Value = 1;
dgv.Rows[0].Cells[1].Value = textBox1.Text;
}
На этом всё, если есть какие-то вопросы, то оставляйте их в комментариях.
C#:
private void button1_Click(object sender, EventArgs e)
{
//1. Создаём и добавляем колонки
//2. Добавляем строку
int rowNumber = dgv.Rows.Add();
//3. Заполняем ячейки
dgv.Rows[rowNumber].Cells["ID"].Value = rowNumber;
dgv.Rows[rowNumber].Cells[1].Value = textBox1.Text;
}
 

Вложения

  • 1555448089221.png
    1555448089221.png
    30,1 КБ · Просмотры: 2 109
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!