从最后一行更新datagridview

时间:2012-10-29 10:44:17

标签: c# winforms datagridview

我正在尝试从最后一行更新单元格值。我有4个cols和4行,我想把第4个col第4个单元格值带到第3行第3个单元格, 就像那样把第4列第3单元格值带到第2行第3单元格......等等。

这里的逻辑错误是什么,ifix如何?

下面的代码正在运行,但是在最后一行(从botton到top)我收到索引错误(参数超出范围)。

if (e.ColumnIndex != 3)
    return;
int nextRowIndex = e.RowIndex - 1;
int lastRowIndex = SecondaryGridView.Rows.Count + 1;
if (nextRowIndex <= lastRowIndex)
{
    var value = SecondaryGridView.Rows[e.RowIndex].Cells[3].Value.ToString();
    SecondaryGridView.Rows[nextRowIndex].Cells[2].Value = value;
}

2 个答案:

答案 0 :(得分:1)

一个简单的try catch修复了问题。购买我不知道这是否是正确的解决方案。

如果我做错了什么,请纠正我。

if (e.ColumnIndex != 3)
    return;

int nextRowIndex = e.RowIndex - 1;
int lastRowIndex = SecondaryGridView.Rows.Count;

try
{
    if (nextRowIndex <= lastRowIndex)
    {
        var value = SecondaryGridView.Rows[e.RowIndex].Cells[3].Value.ToString();
        SecondaryGridView.Rows[nextRowIndex].Cells[2].Value = value;
    }
}
catch(Exception exception){}

答案 1 :(得分:0)

获取最后一行索引(基于零的索引 - RowCount - 1)

    int lastRowIndex = SecondaryGridView.Rows.Count - 1;

这应该可以解决您的问题。