2012-03-19 4 views
0

セルインデクサーをconst intにマップできないのはなぜですか?このコードで

private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e) 
     { 
      const int TICKETSOURCE_COLUMN = 3; 
      const int ABOUTSOMEID_COLUMN = 4; 
      const int CATEGORYID_COLUMN = 5; 
      const int CONTACTEMAIL_COLUMN = 6; 

      textBoxTicketSource.Text = Convert.ToString(dataGridView1.CurrentRow.Cells[TICKETSOURCE_COLUMN].Value); 
      textBoxAboutLLSID.Text = Convert.ToString(dataGridView1.CurrentRow.Cells[ABOUTSOMEID_COLUMN].Value); 
      textBoxCategoryID.Text = Convert.ToString(dataGridView1.CurrentRow.Cells[CATEGORYID_COLUMN].Value); 
      textBoxContactEmail.Text = Convert.ToString(dataGridView1.CurrentRow.Cells[CONTACTEMAIL_COLUMN].Value); 
     } 

私はこのERRのMSGを取得しています:

"System.NullReferenceExceptionは、オブジェクトのインスタンスに設定されていない未処理 メッセージ=オブジェクト参照ました。"

I持ってこのことについて二つの質問:

1)なぜこれが問題である/私の代わりにこれを行う必要がありますか?

2)RowEnter()イベントは、このコードを配置するのに最適な場所ですか?

答えて

4

const int

はどちらかあなたがまたは、可能性が高く、 CurrentRowは誤番それらを null

ポストスタックトレースで、単にデバッガを使用してい...ここでの問題ではありません。

+0

はい、CurrentRowは最初のRowEnter()でnullです。だから、私はCellClick()イベントにコードを移動し、それは正常に動作します。 –

関連する問題