2011-09-09 44 views
0
private void Remove_Click(object sender, EventArgs e) 
    { 
     dgvSelected.Rows.Remove(dgvSelected.CurrentRow); 
     price = Convert.ToDecimal(Price.Text); 
     price -= Convert.ToDecimal(dgvSelected.SelectedCells[3].Value.ToString()); 
     Price.Text = price.ToString();   
    } 

在該代碼中,目的是刪除所選行其中有一個名爲dgvSelecteddatagridview和刪除後的項目名稱和價格,除去行的價格是要減去當前總數。問題是,當它到達最後一行時,如果它被刪除,則會發出錯誤,提示「對象引用未設置爲對象的實例」。在「price - = Convert.ToDecimal(dgvSelected.SelectedCells [3] .Value.ToString());」部分。的datagridview /數學問題....請幫助

+0

你還面臨同樣的問題嗎? –

回答

1

在您的代碼中,您將在從實際價格降低價格之前刪除該行,因此,「對象引用未設置爲對象實例」的例外嘗試在扣除價格後刪除該行。

+0

好吧,tnx,它現在可以運行..感謝很多... –

+0

@erwin我認爲你應該接受這個答案 – V4Vendetta

0

在刪除行之前先進行數學運算 - 然後它仍然存在。

private void Remove_Click(object sender, EventArgs e) 
    { 
     price = Convert.ToDecimal(Price.Text); 
     price -= Convert.ToDecimal(dgvSelected.SelectedCells[3].Value.ToString()); 
     Price.Text = price.ToString();   
     dgvSelected.Rows.Remove(dgvSelected.CurrentRow); 
    } 
0

在刪除CurrentRow之前先進行數學運算。 最後當你刪除所有的行CurrentRow將爲空,因此是例外。