ПОНЯТНО О Visual Basic NET (том 3)




Работаем с ListView в коде


Заполняем ListView во время работы проекта. Большинство приложений Windows позволяют менять содержимое списка ListView во время работы проекта. Так, Проводник Windows при переходе из папки в папку меняет содержимое своей правой панели. В принципе, вы скоро сможете частично воспроизвести работу Проводника Windows.

Вы будете иметь возможность вручную во время работы проекта редактировать (менять) текст в первом столбце списка, если предварительно установите в True свойство LabelEdit  списка ListView. Обратившись к элементам коллекций SubItems в коде, вы сможете делать то же самое и с другими столбцами (хотя бы при помощи InputBox).

Часто бывает необходимо предоставить пользователю возможность заполнять список ListView из файла и сохранять его в файле. Сейчас мы и рассмотрим этот способ заполнения и сохранения.

В Задание 136 от вас требовалось заполнять из текстового файла и сохранять в текстовый файле массив структур. Если вы не выполнили это задание, то загляните в ответ и разберитесь в программе. Отличие нашего случая в том, что вместо массива структур у нас – коллекции списка. Рассмотрим сначала сохранение.

Сохраняем ListView в файл. Забудем для простоты о флажках и картинках. Пусть информация в текстовом файле должна быть расположена в такой последовательности:

StarDraft

300

нет

UntiReal

500

да

Suake

200

нет

Feroes III

800

да

Ниже я привожу 5 процедур, соответствующих 5 кнопкам проекта на Рис. 20.11. Вот процедура, сохраняющая список LV в файл:

Dim i As Integer                                'Счетчик игр

Private Sub Сохранить(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Сохранить.Click

        Dim Запись As New System.IO.StreamWriter("E:\VB\Игры.txt")

        For i = 0 To LV.Items.Count

- 1

            Запись.WriteLine(LV.Items(i).SubItems(0).Text)     'Запись 1 столбца i-й строки

            Запись.WriteLine(LV.Items(i).SubItems(1).Text)     'Запись 2 столбца i-й строки

            Запись.WriteLine(LV.Items(i).SubItems(2).Text)     'Запись 3 столбца i-й строки




Содержание  Назад  Вперед