denis.larocque Ответов: 2

C# datagridview последняя строка


Привет :) ,я подключаю datagridview к sql, чтобы показать данные на datagridview. я должен добавить флажок и изменить цвет строки на красный,когда есть флажок. и когда будет проверена автоматическая следующая строка.
моя проблема заключается в том, когда находится последняя строка, которая дает мне ошибку. что я хочу , так это когда будет последняя строка, проверьте и не пытайтесь добавить новую строку.

Что я уже пробовал:

использование системы;
использование системы.Коллекции.Общий;
использование системы.ComponentModel;
использование System.Data;
использование системы.Рисование;
использование System.Linq;
использование System.Text;
использование системы.Окна.Формы;

пространство имен WindowsFormsApplication1
{
общественности частичного класс form1 : форма
{
открытый form1()
{
метод InitializeComponent();
}

частный недействительными методе form1_load(объект отправителя, EventArgs в электронной)
{

//Заполнить Datagrid
этот.uSR_ProdMonitorTableAdapter.FillBy(this.iso_OldDataSet.USR_ProdMonitor);

}

частная dataGridView1_CellContentClick недействительным(объект отправителя, DataGridViewCellEventArgs е)
{
bool selected = !конвертировать.ToBoolean(dataGridView1.Rows[e.Параметр rowindex].Ячейки["проверить"].Ценность);
dataGridView1.Rows[1].Selected = true;

если (выбрано)
{
//если регистрация автоматическая НИС подряд
int next = this.dataGridView1.CurrentRow.Индекс +1;
//изменить цвет на красный, если проверить
dataGridView1.Ряды[электронный.Параметр rowindex].DefaultCellStyle.Цвет Фона = Цвет.Красный;
это.dataGridView1.CurrentCell = это.dataGridView1.Строк[далее].Ячейки[this.dataGridView1.CurrentCell.Значение columnindex];
}
еще
{
dataGridView1.Ряды[электронный.Параметр rowindex].DefaultCellStyle.BackColor = Цвет.Светло-зеленый;
dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки["проверить"].Значение = !Преобразовать.ToBoolean(dataGridView1.Rows[e.Параметр rowindex].Ячейки["проверить"].Ценность);

}
}


}

}

2 Ответов

Рейтинг:
8

denis.larocque

спасибо, Джерри, да, это правильный путь :)


Рейтинг:
12

Gerry Schmitz

Вам нужно проверить свой "счетчик строк" вместо произвольной индексации на "следующую строку" (которая может и не существовать).

int next = this.dataGridView1.CurrentRow.Index +1;

Datarowcollection с.Свойство Count (System.Data) | Microsoft Docs[^]