0

У меня есть этот код, где я хочу добавить текст в определенный столбец, в то время как все остальные столбцы оставлены так, как они есть. Однако, когда я увеличиваю индекс подпункты от 0 до 1 или 2, он дает мне ошибку, которая говорит:C# - Индекс вне диапазона в индексе SubItems для Listview

Необработанное исключение типа «System.ArgumentOutOfRangeException» произошло в System.Windows.Forms.dll

Дополнительная информация: InvalidArgument = Значение '1' недопустимо для 'index'.

Это мой код:

if (flag == false) 
{ 
    string period = txt_gradingPeriod.Text; 
    string numeric = txt_numValue.Text; 
    int cell = 0; 

    if (period == "1st") { cell = 1; } 
    else if (period == "2nd") { cell = 2; } 
    else if (period == "3rd") { cell = 3; } 
    else if (period == "4th") { cell = 4; } 

    foreach (ColumnHeader header in listView1.Columns) 
    { 
     if (header.Text == period) 
     { 
      listView1.Items[0].SubItems[cell].Text = numeric; 
      break; 
     } 
    } 
} 

ответ

1

я догадку ваш ListViewer не был назначен все элементы. Где вы заполняете ListViewer, имеет ли он более одного элемента? Если нет, это вызовет ошибку, которую вы видите.

Опубликовано как ответ, поскольку я не могу комментировать.

+0

Я пробовал то, что вы сказали, и это сработало. Спасибо! –

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