Rockstar_ Ответов: 3

RowDataBound событие эквивалент GridView для работы в Windows практическое руководство


Привет,

Эквивалентное событие GridView RowDataBound в Windows DataGridView..

3 Ответов

Рейтинг:
2

KM Perumal

 private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
//bala bala
        }


Рейтинг:
2

Poolee

Я обнаружил, что если ячейка не была видна, то есть с правого края экрана, то строка не была окрашена.

Я вместо ссылки код на событие 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

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Ссылаться -
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 - это событие вызывается всякий раз, когда ячейкам необходимо отобразить его значение.

2. RowDataBound для форм Windows DatagridView[^]