1

私はデータグリッドに取り組んでおり、 cellClick イベントで、関連するテックスボックスのデータを編集用に取得しています。行をクリックすると正常に動作しますが、列をクリックすると例外が発生し、理由がわかりません。

これが私のコードです:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    itmId.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
    itmNme.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
    untCst.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
    qntty.Text = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
    manfDate.Text = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
}
4

1 に答える 1

4

テーブルのヘッダーをクリックすると、行インデックス -1 が送信されます。このイベントが無効な rowindex および columnindex 値で発生する可能性がある他のインスタンスがあります。

使用する前に、rowindex と columnindex をテストする必要があります。

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.RowIndex >= 0 && e.ColumnIndex >= 0) {
        // .. my code goes here ..
    }
}

場合によっては、rowindex と columnindex がバッキング データの制限を超えているかどうかもテストする必要があります。

于 2012-07-23T16:54:48.317 に答える