RowDataBound событие эквивалент GridView для работы в Windows практическое руководство
Привет,
Эквивалентное событие GridView RowDataBound в Windows DataGridView..
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { //bala bala }
Я обнаружил, что если ячейка не была видна, то есть с правого края экрана, то строка не была окрашена.
Я вместо ссылки код на событие RowPrePaint.
private void dataGridView1_RowPrePaint ( object sender, DataGridViewRowPrePaintEventArgs e ) { if ( (bool)dataGridView1.Rows[e.RowIndex].Cells[userColumn].Value == true ) { dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.MistyRose; } }
Ссылаться -
1. событие gridview rowdatabound в winforms?[^]
Цитата:DataGridView не имеет такой же обработки событий, как в ASP.NET.
Что вы могли бы сделать, так это обработать событие RowsAdded, но обратите внимание, что при срабатывании этого события может быть добавлено более одной строки. Пример:private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { for (int i = e.RowIndex; i < e.RowCount + e.RowIndex; i++) { Console.WriteLine("Row " + i.ToString() + " added"); } }
Кроме того, это событие немного "глючит" - в тот момент, когда оно привязано к базе данных, оно может срабатывать более одного раза для каждой строки, но впоследствии оно ведет себя правильно - когда вы добавляете новую строку в источник данных, оно срабатывает только один раз.
Но, вероятно, я должен упомянуть (даже если это не ваш первоначальный вопрос), что если бы вы использовали это событие в ASPX для обработки форматирования вывода, то здесь эквивалентом фактически было бы событие CellFormatting - это событие вызывается всякий раз, когда ячейкам необходимо отобразить его значение.