Как DataGridViewCellEventArgs помогает изменить текущее значение из DataGridViewCell? - PullRequest
0 голосов
/ 08 мая 2009

Я использую это событие, чтобы отметить строку, когда CheckBoxColumn был проверен, поэтому дополнительно я хочу заменить «программно» текущее значение ячейки [6] из той же строки, используя свойство «Значение», но это не удается вызывать по умолчанию свойство readOnly = = true.

DataGridView1.DataSource извлекается из запроса LINQ2SQL.

void updateStyle_DataGridViewCellEventArgs(object sender, DataGridViewCellEventArgs e)
{
     if (e.RowIndex == -1)
         return;
     else
     {
        DataGridView dgv = sender as DataGridView;
        int vCHK = e.ColumnIndex;
        if (vCHK != 0)
            return;
        else
        {
            DataGridViewCheckBoxCell temp = (DataGridViewCheckBoxCell)dgv.Rows[e.RowIndex].Cells[0];
            if ((bool)temp.EditedFormattedValue == true)
            {
                DataGridViewTextBoxCell xrow = (DataGridViewTextBoxCell)dgv.Rows[e.RowIndex].Cells[6];
                xrow.ReadOnly = false;
                xrow.Value = "P";
                xrow.OwningRow.DefaultCellStyle.BackColor = Color.Wheat;
            }
            else
            {
                temp.OwningRow.DefaultCellStyle.BackColor = Color.White;
            }
        }
    }
}

1 Ответ

1 голос
/ 08 мая 2009

Я бы нашел фактический объект / строку в источнике данных, перевернул туда логическое значение и заново связал сетку. Затем вы можете установить BackColor в событии CellFormatting.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...