2015-09-16 2 views
-5

Я попытался отладить этот код, но я не могу его исправить. Если я использую этот код, моя WF запустить:Индекс вне диапазона в C#

try 
{      

    rtxttdwhat.Text = dataGridView1.CurrentRow.Cells[8].Value.ToString(); 
    lbtdtime1.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString() + 
      ":" + dataGridView1.CurrentRow.Cells[0].Value.ToString(); 

другой, это шоу INDEX OUT OF RANGE:

int a, b; 
a = 1; 
b = a+1; 
try 
{ 
    if (int.Parse(dataGridView1.Rows[a].Cells[1].Value.ToString()) == int.Parse(lbhour.Text) &&    
     int.Parse(dataGridView1.Rows[a].Cells[0].Value.ToString()) == int.Parse(lbmin.Text)) 
    { 
     a = a + 1; 
     b = a + 1; 
    } 
    rtxttdwhat.Text = dataGridView1.Rows[a].Cells[8].Value.ToString(); 
    lbtdtime1.Text = dataGridView1.Rows[a].Cells[1].Value.ToString() + 
      ":" + dataGridView1.Rows[a].Cells[0].Value.ToString(); 
+1

Вы уверены, что строки [a] не выйдут из привязанного i, .e может быть только 5 строк, но имеет текущее значение 6, поэтому ваш [6] на самом деле недействителен. Пожалуйста, убедитесь, что сначала – Viru

+1

что вы делаете с var b .. Я не вижу, что вы используете где-нибудь в своем коде. – Viru

ответ

1

Я не 100% уверен, что вы делаете, особенно с b? Но вы можете попробовать это:

int RowCount = dataGridView1.Rows.Count; 
if(a <= RowCount) 
{ 
    //Youre Code 
} 
else 
{ 
    //Out of Range 
} 
+0

спасибо, это полностью работает – Haniz

0

Привет Эта ссылка может быть полезна для вас IndexOutOfRangeException

Измените код и проверка строк и ячеек Считает, прежде чем доступ к ним.

Смежные вопросы