我有一个我的Vendor表的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 columns功能。
答案 0 :(得分:3)
在访问当前行测试之前,如果它为null
if(this.dataGridVendors.CurrentRow != null )
setVendorInfo((Vendor)allTheVendors[this.dataGridVendors.CurrentRow.Index]);