C# 从最后一行更新datagridview

C# 从最后一行更新datagridview,c#,winforms,datagridview,C#,Winforms,Datagridview,我正在尝试更新最后一行的单元格值。我得到了4列和4行,我想将第4列第4个单元格值取到第3行第3个单元格, 这样,将第4列第3个单元格的值移到第2行第3个单元格…等等 这里的逻辑错误是什么,怎么能解释呢 下面的代码正在工作,但在最后一行(从botton到top),我得到了一个索引错误(参数超出范围) if(如ColumnIndex!=3) 返回; int-nextRowIndex=e.RowIndex-1; int lastRowIndex=SecondaryGridView.Rows.Count

我正在尝试更新最后一行的单元格值。我得到了4列和4行,我想将第4列第4个单元格值取到第3行第3个单元格, 这样,将第4列第3个单元格的值移到第2行第3个单元格…等等

这里的逻辑错误是什么,怎么能解释呢

下面的代码正在工作,但在最后一行(从botton到top),我得到了一个索引错误(参数超出范围)

if(如ColumnIndex!=3)
返回;
int-nextRowIndex=e.RowIndex-1;
int lastRowIndex=SecondaryGridView.Rows.Count+1;
if(nextRowIndex获取最后一行索引(从零开始的索引--行计数-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){}
if(如ColumnIndex!=3)
返回;
int-nextRowIndex=e.RowIndex-1;
int lastRowIndex=SecondaryGridView.Rows.Count;
尝试
{

如果(nextRowIndexáGeorge Dgebuadze):我已经尝试过这种方法,我仍然有同样的问题。
    int lastRowIndex = SecondaryGridView.Rows.Count - 1;
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){}