我正在构建一个具有DataGridView的应用程序,有时在程序执行期间,我需要从特定的行和列中更新一个值,因为该值包含与某些项目的数量有关的数据。

举例来说,假设您有以下DataGridView:

       0          1
  +----------+----------+
  |   Item   | Quantity |
  +----------+----------+
0 | Candy L  |    1     |
  +----------+----------+


我需要将+1添加到第0行和第1列。因此,我将得到这个结果。

       0          1
  +----------+----------+
  |   Item   | Quantity |
  +----------+----------+
0 | Candy L  |    2     |
  +----------+----------+


我已经做了一些事情:

int rowIndex = 0;
foreach (DataGridViewRow dgvRow in dataGridViewLista.Rows)
{
    if (dgvRow.Cells[0].FormattedValue.ToString() == "Candy")
        // Here I'd update the row (at this point I already have the row index)
    rowIndex++;
}


谢谢。

最佳答案

您需要获取“数量”单元格的值,将其解析为整数或相应的类型,然后向其中添加1,将结果分配回Cell.Value属性,例如:

if (dgvRow.Cells[0].FormattedValue.ToString() == "Candy")
{
 int qty = Convert.ToInt32(dgvRow.Cells[1].FormattedValue);
 qty += 1;
 dgvRow[0].Cells[1].Value = qty;
}


如果使用int.TryParse方法进行解析以避免异常,那会更好

10-05 23:49