2016-06-13 6 views
1

Wenn ich auf Datagridview klicken wirft es eine Fehlermeldung, „eine nicht behandelte Ausnahme des Typs‚System.ArgumentOutOfRangeException‘in mscorlib.dll aufgetretenFehler bei dem auf Datagridview geklickt

Zusätzliche Informationen: Index außerhalb des zulässigen Bereichs war Muss sein. nicht negativ und weniger als die Größe der Sammlung. " Hier

ist Codeabschnitt, ich brauche es, wenn auf irgendeiner Zeile geklickt, alle Parameter in Textfelder zu schreiben, so dass es leicht

aktualisiert werden kann
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(); 
     } 

Antwort

0

Sie erhalten diese Fehlerursache entweder Ihre gridview don‘ t haben 5 Zeilen oder 5 Spalten. Wie viele Zeilen/Spalten hat Ihre Gridview? Denken Sie daran, dass die Array-Indizierung mit 0 beginnt. Stellen Sie sicher, dass die Zeilennummer (oder) Spaltennummer, auf die Sie zugreifen, existiert.

Darüber hinaus greifen Sie wie unten auf mehrere Zeilen gleichzeitig zu. Das macht keinen Sinn, denn zu jeder Zeit wird nur eine Zeile ausgewählt. ... Recht?

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

Es sollte eher wahrscheinlich

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(); 
     } 

Thanks @ stackuser83, dass für den Hinweis sein sein.

+0

ja, vielleicht 'SelectedRows [0]' für jede Codezeile – stackuser83

+0

@ stackuser83, Ja richtig. Bearbeitete Antwort. Danke für das Zeigen. – Rahul

Verwandte Themen