2016-06-13 8 views
1

をクリックしたとき、私はDataGridViewのをクリックすると、それは型 『System.ArgumentOutOfRangeExceptionが』の 」未処理の例外をというエラーがスローされますががmscorlib.dllエラーDataGridViewの

で発生しました追加情報:インデックスが範囲外だったでなければなりません。負ではなく、コレクションのサイズよりも小さい。いくつかの行をクリックしたときにここで

は、コードセクションで、私はあなたがそのエラーの原因あなたのGridViewドン」のいずれかを取得している、それが簡単に

private void dgvList_MouseClick(object sender, MouseEventArgs e) 
     { 
       tbName.Text = dgvList.SelectedRows[0].Cells[0].Value.ToString(); 
       tbSurname.Text = dgvList.SelectedRows[1].Cells[1].Value.ToString(); 
       tbMobile.Text = dgvList.SelectedRows[2].Cells[2].Value.ToString(); 
       tbEmail.Text = dgvList.SelectedRows[3].Cells[3].Value.ToString(); 
       cbCategory.Text = dgvList.SelectedRows[4].Cells[4].Value.ToString(); 
     } 

答えて

0

を更新できるように、テキストボックス内のすべてのパラメータを記述し、それを必要とします5行または5列あります。グリッドビューにはいくつの行/列がありますか?配列インデックスは0で始まることに注意してください。アクセスしている行番号(または)の列番号が存在することを確認してください。

また、なぜ以下のように同時に複数の行にアクセスしていますか?それはいつでも1行だけが選択されることを意味するわけではありません。 ... 右?

dgvList.SelectedRows[0] 
dgvList.SelectedRows[1] 

それはむしろ、おそらくそれを指し示すstackuser83 @

private void dgvList_MouseClick(object sender, MouseEventArgs e) 
     { 
       tbName.Text = dgvList.SelectedRows[0].Cells[0].Value.ToString(); 
       tbSurname.Text = dgvList.SelectedRows[0].Cells[1].Value.ToString(); 
       tbMobile.Text = dgvList.SelectedRows[0].Cells[2].Value.ToString(); 
       tbEmail.Text = dgvList.SelectedRows[0].Cells[3].Value.ToString(); 
       cbCategory.Text = dgvList.SelectedRows[0].Cells[4].Value.ToString(); 
     } 

おかげでもしなければなりません。

+0

はい、おそらく 'SelectedRows [0]'コード – stackuser83

+0

@ stackuser83の各行に対して正しいです。編集された答え。指してくれてありがとう。 – Rahul

関連する問題