2012-04-29 258 views
0

我有一個供應商表的datagridview,然後我也有所有字段的文本框。我有一個setVendor方法,將所有文本框設置爲datagrid的值,然後我有一個currentcellchanged事件,將文本框設置爲單擊的正確供應商。這裏是我的代碼:未將對象引用設置爲對象的實例。錯誤

private void dataGridVendors_CurrentCellChanged_1(object sender, EventArgs e) 
{ 
    setVendorInfo((Vendor)allTheVendors[this.dataGridVendors.CurrentRow.Index]); 
} 

//method to set the textboxes with the vendor information 
private void setVendorInfo(Vendor aVendor) 
{ 
    //set all the textboxes 
    this.txtVendorId.Text = aVendor.VendorId; 
    this.txtName.Text = aVendor.Name; 
    this.txtAddressNo.Text = aVendor.AddressNo; 
    this.txtStreet.Text = aVendor.Address; 
    this.txtCity.Text = aVendor.City; 
    this.comboBoxState.Text = aVendor.State; 
    this.txtZipcode.Text = aVendor.Zipcode; 
    this.txtPhoneNumber.Text = aVendor.PhoneNumber; 
} 

當我刪除記錄出現錯誤,並在dataGridVendors_CurrentCellChanged事件發生。我假設它發生,因爲一旦選定的記錄被刪除,然後沒有選擇記錄,所以它會拋出錯誤,但我不知道如何解決它。

我注意到如果我使用dataGrid,一切正常,但是當我將它切換到dataGridView時,會發生此錯誤。我想使用一個dataGridView,因爲我認爲它看起來好一點,我喜歡autosize列的功能。

回答

2

訪問當前行測試之前,如果它

if(this.dataGridVendors.CurrentRow != null) 
    setVendorInfo((Vendor)allTheVendors[this.dataGridVendors.CurrentRow.Index]); 
+0

非常感謝,這工作完全是零! –

相關問題