Удалить весь ListViewItems кроме первого столбца - PullRequest
0 голосов
/ 12 августа 2011

Я хочу удалить все ListviewItems в моем Listview, кроме первого столбца. У меня есть метод, но он иногда выдает ArgumentRangeException, который я не могу найти, почему.

  private void ListViewClear()
    {

            for (int i = 0; i < lstKullanicilar.Items.Count; i++)
            {
                if (lstKullanicilar.Items[i].SubItems.Count != 1)
                {
                    lstKullanicilar.Items[i].SubItems.RemoveAt(1);
                    lstKullanicilar.Items[i].SubItems.RemoveAt(2);
                    lstKullanicilar.Items[i].SubItems.RemoveAt(3);
                    lstKullanicilar.Items[i].SubItems.RemoveAt(1);
                    lstKullanicilar.Items[i].SubItems.RemoveAt(1);
                }
            }

1 Ответ

1 голос
/ 12 августа 2011

Попробуйте что-то вроде этого:

 for (int i = 0; i < lstKullanicilar.Items.Count; i++) {
   while(lstKullanicilar.Items[i].Count > 1){
      lstKullanicilar.Items[i].SubItems.RemoveAt(1);
   }
 }

Проблема с вашим кодом, вероятно, в том, что у вас есть переменное количество элементов в коллекции SubItems.С кодом, который вы показали, у вас должно быть как минимум 6 элементов в коллекции подэлементов, чтобы не получить исключение arugment.

...