【问题标题】:Update datagridview from last row从最后一行更新 datagridview
【发布时间】:2012-10-29 20:37:38
【问题描述】:

我正在尝试从最后一行更新单元格值。我有 4 列和 4 行,我想将第 4 列第 4 单元格值带到第 3 行第 3 单元格, 像这样将第 4 列第 3 单元格值带到第 2 行第 3 单元格..等等..!

这里的逻辑错误是什么,如何解决这个问题??

下面的代码正在运行,但在最后一行(从底部到顶部)我遇到了索引错误(参数超出范围)。

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;
}

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案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){}
    

    【讨论】:

      【解决方案2】:

      获取最后一行索引(从零开始的索引 -- RowCount - 1)

          int lastRowIndex = SecondaryGridView.Rows.Count - 1;
      

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

      【讨论】:

      • àGeorge Dgebuadze:这个方法我已经试过了,还是有同样的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多