2014-01-07 3 views
-1
byte b = 0; 
foreach (Control x in this.Controls) 
{ 
    if (x is PictureBox) 
    { 
     x.Tag = saylar[b].ToString(); 
     b++; 
    } 
} 

Я получаю сообщение об ошибке, что массив был вне пределов, почему? Он отлично работает на C# моего друга.Array был за пределами границ

+0

Что такое 'saylar' и сколько элементов он содержит? –

+0

'int [] saylar = new int [32];' – user2943407

+1

Либо вы проверяете значение 'b', как' if (b <32) {x.Tag = saylar [b] .ToString(); b ++;} 'или вместо этого используйте« Общий список »или« Список массивов ». – Edper

ответ

2

Вы получаете ошибку, так как saylar[b] указывает на индекс, который выходит за границы массива.

Положите точку останова на эту строку: x.Tag = saylar[b].ToString(); , а затем посмотрите результат при запуске кода.

Вы не показали нам, что такое saylar, но это ваша проблема.

Надеюсь, это поможет!

+0

Вы правы, сэр. Я сделал saylar массив из 36 элементов, и это устранило проблему! :-) – user2943407

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