2012-02-16 6 views
0

WindowsフォームのdataGridView_CellEndEditイベントのdataGridView(有効/無効)でチェックボックス列のセルの状態をキャプチャしようとしていますが、次のようになります。dataGridViewチェックボックスの列「オブジェクト参照がオブジェクトのインスタンスに設定されていません」

private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.ColumnIndex == 2) 
     { 
      switch ((bool)dataGridView2.Rows[e.RowIndex].Cells[2].Value) 
       { 
       case true: 
        //do something 
        break; 
       case false: 
        //do something else 
        break; 
       default: 
        break; 
       } 
     } 
    } 

これは1つのケースとは別に動作します。 (例えば私が見逃したと言う)白い矩形以外のチェックボックスのセルの任意の部分をクリックし、何か他のものをクリックしようとすると、このエラーが表示されます。 "オブジェクト参照がオブジェクトのインスタンスに設定されていません。このエラーは、次の行で発生します。

switch ((bool)dataGridView2.Rows[e.RowIndex].Cells[2].Value) 

私はここで間違っていますか?

答えて

1
//put before the switch 
if (e.RowIndex<0 || dataGridView2.Rows[e.RowIndex] ==null || dataGridView2.Rows[e.RowIndex].Cells[2].Value ==null) 
{ 
//cannot determine what was selected , you could return or do something else . . . 
return; 
} 
+0

感謝のように働いた! – globetrotter

関連する問題