繁体   English   中英

以编程方式更改DataGridView单元格值

[英]Change DataGridView Cell Value Programmatically

我有一个datagridview,它有一个数据表作为数据源。 我需要手动更改一些单元格值。 例如,如果单元格输入值包含字符“g”,则在离开单元格时它必须自动更改“abc”。 以下代码检查当前单元格的格式化值:

private void dgwPNotlar_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
  if (e.ColumnIndex<2||e.ColumnIndex>4||e.FormattedValue.ToString()=="")
  {
    return;
  }

  if (e.FormattedValue.ToString().Contains('G')||e.FormattedValue.ToString().Contains('g'))
  {
    dgwPNotlar.EditMode = DataGridViewEditMode.EditProgrammatically;
    dgwPNotlar.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "abc";
    dgwPNotlar.EndEdit();
    dgwPNotlar.EditMode = DataGridViewEditMode.EditOnEnter;
    return;
  }
}

当代码“dgwPNotlar.EndEdit();” 运行时,我更改的单元格值为“abc”,返回上一个值为“g”或“G”。

有任何想法吗?

在验证事件之后需要更改单元格,因此请尝试使用CellValidated事件:

void dgv_CellValidated(object sender, DataGridViewCellEventArgs e) {
  string cellValue = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].FormattedValue.ToString();
  if (cellValue.Contains('G') || cellValue.Contains('g')) {
    dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "abc";
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM