2012-10-29 78 views
0

我想從最後一行更新單元格版本。我得到了4列和4行,我想把第4列第4列單元格的值設置爲第3列第3列, 就像那樣取第4列col第三個單元格值第二行第三個單元格..等..!從最後一行更新datagridview

這裏有什麼邏輯錯誤,ifix怎麼能這樣呢?

下面的代碼工作,但在最後一行(從botton到頂部)我收到一個索引錯誤(參數超出範圍)。

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

回答

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){} 
0

爲了讓最後一排索引(從零開始的索引 - 行數 - 1)

int lastRowIndex = SecondaryGridView.Rows.Count - 1; 

這應該糾正你的問題。

+0

àGeorgeDgebuadze:我已經試過這種方法,我仍然有同樣的問題。 – linguini