0

Vendor テーブルのデータグリッドビューがあり、すべてのフィールドのテキストボックスもあります。すべてのテキストボックスをデータグリッドの値に設定する setVendor メソッドがあり、テキストボックスをクリックされた適切なベンダーに設定する 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を使用したいと思います。

4

1 に答える 1

3

現在の行にアクセスする前に、null かどうかをテストします

if(this.dataGridVendors.CurrentRow != null )
    setVendorInfo((Vendor)allTheVendors[this.dataGridVendors.CurrentRow.Index]); 
于 2012-04-29T19:51:18.177 に答える