Создание Windows приложений на C#





Свойства и события объекта listBox


Для продолжения знакомства с визуальными объектами следует открыть проект, разработанный на предыдущем занятии.
На основе нашей программы разработаем редактор HTML кода для WEB дизайнеров.
Для работы с HTML файлами следует поменять маску ввода для диалогов открытия и сохранения файлов. Так как интернет файлы имеют расширение html, то маска (свойство filter) будет выглядеть так: HTML Files|*.html
Для удобства работы с HTML кодом, добавим на нашу форму список listBox1. Для этого немного уменьшим ширину textBox1 и справа установим listBox1.
Список listBox1 содержит строки которые можно выбирать и производить какие либо действия с выбранными строками. Создадим небольшой список тэгов HTML кода. Эти тэги, в процессе работы с программой, можно будет выбирать и вставлять в блокнот, что существенно облегчит работу WEB дизайнера. Список создаётся в свойстве Items.



В строке (Collection) следует нажать маленькую кнопку справа и в появившемся редакторе списка ввести строки как показано на рисунке:




В итоге получится список выбора в listBox1. Следующим шагом следует создать событие по вставке выбранной строки из списка в текстовый редактор textBox1.
Событие будет происходить по двойному щелчку мышки на выбранной строке в listBox1. Для создания события следует переключиться на раздел Events и в строке ввода напротив события DoubleClick, двойным щелчком мыши создать событие listBox1_DoubleClick.



private void listBox1_DoubleClick(object sender, EventArgs e)
  {
    textBox1.Text += listBox1.SelectedItem.ToString();
  }

Строку textBox1.Text += listBox1.SelectedItem.ToString(); дописываем самостоятельно. Значок += означает, что текст в textBox1 следует увеличить на выбранную сторку из listBox1.
Запустим полученное приложение и попробуем написать страничку на HTML.
Сначала вставим двойным щелчком необходимые тэги:



А затем, допишем содержание странички и параметры тэгов. Например, как показано на рисунке.



Нажав на кнопку сохранить, сохраним наш текст на диске, например С, с именем test. Переключимся в Windows и на диске С найдём наш файл.



Значок нашего файла принял форму WEB браузера установленного на компьютере по умолчанию. Запустим этот файл и убедимся, что у нас всё получилось.



Так, как статья посвящена объекту listBox, рассмотрим, что ещё может этот объект.
У объекта listBox есть методы, которые позволяют манипулировать элементами (Items) списка:
Add - Добавление элемента (строки) в список;
RemoveAt - Удаляет элемент списка;
Clear - Очищает список.
Добавим на нашу форму ещё объекты Button4, Button5 и textBox2, как показано на рисунке:



В элемент textBox2 будем вводить новые тэги, и добавлять их в список при нажатии кнопки Button4. Кнопкой Button5 будем наоборот удалять ненужные тэги из списка. На кнопках следует создать соответствующие надписи. Двойным щелчком мыши создадим событие на нажатие кнопки Button4 (добавить).

private void button4_Click(object sender, EventArgs e)
  {
 // Методом Add добавляем в список текст из textBox2
    listBox1.Items.Add(textBox2.Text);
 // Очищаем от текста строку ввода
    textBox2.Text = "";
  }

Убедимся, что кнопка "Добавить" работает.





Для удаления ошибочно введённых или не нужных тэгов задействуем кнопку "Удалить". Создадим для неё событие:

private void button5_Click(object sender, EventArgs e)
  {
  // Проверяем, есть ли в списке выделенная строка
   if (listBox1.SelectedIndex == -1)
  // Если нет, то выводим сообщение.
   MessageBox.Show("Нет выделенной строки"); else
  // Иначе .. Удаляем выделенную строку
    listBox1.Items.RemoveAt(listBox1.SelectedIndex);
  }

Очевидно, что манипулируя со списком тэгов мы не можем сохранить их для следующей сессии работы с нашим блокнотом, так как список после закрытия программы не сохраняется.
Задействуем кнопку Button1 для сохранения списка в файле. Сделаем на ней надпись "Сохранить". Будем сохранять список в файле с именем tags.txt имя файла и расширение не имеют особого значения. Сам файл поместим на диск С, но можно поместить на любой другой диск и в любую папку, например с нашим проектом. Создадим событие на нажатие кнопки:

private void button1_Click(object sender, EventArgs e)
  {
 // Создаём переменную sw для записи данных в поток (файл) с именем C:\\tags.txt
   using (StreamWriter sw = new StreamWriter("C:\\tags.txt"))
  {
 // Первой строкой записываем в файл число строк в нашем списке
   sw.WriteLine(listBox1.Items.Count.ToString());
  // В цикле записываем все строки в файл.
 // Первая строка в списке имеет индекс 0
 // Count - число строк в списке
   for (int j = 0; j < listBox1.Items.Count; j++)
   sw.WriteLine(listBox1.Items[j]);
   }
  }

Запустим приложение и нажмём кнопку "Сохранить". Переключимся в Windows И в проводнике найдём наш файл tags.txt. Откроем его и убедимся, что все строки записались.




И, наконец, следует создать событие, которое будет загружать сохранённый файл в список тэгов. Создадим ещё одну кнопку Button6 и озаглавим её "Загрузить". Создадим для неё событие нажатия кнопки:

private void button6_Click(object sender, EventArgs e)
  {
 // Очищаем список от содержимого
   listBox1.Items.Clear();
 // Создаём переменную reader для чтения из потока (файла C:\\tags.txt)
   using (StreamReader reader = new StreamReader("C:\\tags.txt"))
  {
 // Считываем первую строку чтобы получить число строк в списке
    string z = reader.ReadLine();
 //В цикле считываем остальные строки из файла в список тэгов
   for (int j = 0; j < Convert.ToDouble(z); j++)
   listBox1.Items.Add(reader.ReadLine());
  {
}

Запустим программу попробуем пополнить список тэгов, затем сохранить его. После чего закрыть программу, вновь открыть и загрузить соранённый список тэгов.






   ©Гуков Константин Михайлович 2006 - 2012     Почта: [email protected]