我正在构建一个具有DataGridView的应用程序,有时在程序执行期间我需要更新特定行和列的值,因为此值包含与某个项目的数量相关的数据。
所以为了举例说明你有这个DataGridView:
0 1
+----------+----------+
| Item | Quantity |
+----------+----------+
0 | Candy L | 1 |
+----------+----------+
我需要在第0行和第1列添加+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++;
}
感谢。
答案 0 :(得分:7)
您需要获取Quantity单元格的值,将其解析为整数或相应类型,然后将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方法解析以避免异常
,则会更好答案 1 :(得分:0)
您可以使用以下内容:
int rowIndex = 0;
foreach (DataGridViewRow dgvRow in dataGridViewLista.Rows)
{
if (dgvRow.Cells[0].FormattedValue.ToString() == "Candy")
{
int value;
if(int.TryParse(dgvRow.Cells[1].FormattedValue, out value))
dgvRow.Cells[1].Value = value + 1;
}
rowIndex++;
}