Создание Windows приложений на C#Содержание: Свойства и события объектов comboBox и webBrowser
Для создания панели закладок, добавим на браузере ещё одну кнопку "Закладки" (button5) и панель (panel1). На панели расставим объекты, как показано на рисунке. Свойство visible панели следует установить в false (панель не будет отображаться при старте программы). Для хранения закладок создадим на диске файл с любым именем, например C:\browser.ini Изначально, файл будет пустым. В него следует (открыв в блокноте) записать цифру 0, эта цифра, в дальнейшем будет указывать на число строк в файле. Файл следует сохранить как ... в кодировке UTF-8. В нашей программе, для работы с файлами, следует в начале программы добавить директиву: using System.IO; Для кнопки button5 "Закладки" (двойным щелчком) создадим событие: private void button5_Click(object sender, EventArgs e) { panel1.Visible = true; button5.Visible = false; textBox2.Text = comboBox1.Text; // Очищаем список от содержимого listBox1.Items.Clear(); // Создаём переменную reader для чтения из файла browser.ini using (StreamReader reader = new StreamReader("C:\\browser.ini")) { // Считываем первую строку чтобы получить число строк в списке string z = reader.ReadLine(); //В цикле считываем остальные строки из файла for (int j = 0; j < Convert.ToDouble(z); j++) listBox1.Items.Add(reader.ReadLine()); } } Создадим ещё одно событие на кнопку закрытия панели закладок: //Закрыть панель закладок private void button8_Click(object sender, EventArgs e) { panel1.Visible = false; button5.Visible = true; } Запустим программу и убедимся, что панель закладок нормально открывается (кнопка ''Закладки'' пропадает), а при закрытии панели - появляется. Создадим событие на кнопку "Добавить", так что бы имя и адрес сайта добавлялись в список. Сразу же сохраняем полученный новый список в файле. //Добавить адрес в список listBox1 private void button6_Click(object sender, EventArgs e) { //Добавляем в список адрес и комментарий //Символ вертикальная черта будет в последующем использоваться //как разделитель комментария и адреса сайта listBox1.Items.Add(textBox1.Text + "|" + textBox2.Text); // Создаём переменную sw для записи данных в поток (файл) using (StreamWriter sw = new StreamWriter("C:\\browser.ini")) { // Первой строкой записываем в файл число строк в нашем списке sw.WriteLine(listBox1.Items.Count.ToString()); // В цикле записываем все строки в файл. // Count - число строк в списке for (int j = 0; j < listBox1.Items.Count; j++) sw.WriteLine(listBox1.Items[j]); } } Запустим наше приложение и добавим несколько адресов в список закладок. Закроем панель закладок, а затем откроем вновь, чтобы убедиться, что добавленные закладки сохранились в файле. Далее, создадим событие двойного щелчка на выбранной строке списка закладок. Из строки выделим адрес сайта и поместим адрес в адресную строку. //Двойной щелчок на списке private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) { string str = listBox1.SelectedItem.ToString(); string newstr = ""; int flag = 0; //flag определяет разделитель | char c; int k = str.Length; //Выделяем из строки адрес сайта for (int j = 0; j < k; j++) { c = str[j]; if (flag != 0) newstr += c; if (c == '|') flag = 1; } //Подставляем в адресную строку адрес сайта comboBox1.Text = newstr; } } Запустим программу и убедимся, что при двойном щелчке на списке закладок, адрес выбранного сайта помещается в адресную строку. И, наконец, создадим событие для кнопки "Удалить закладку". //Удаление ненужной строки (закладки) private void button7_Click(object sender, EventArgs e) { // Проверяем, есть ли в списке выделенная строка if (listBox1.SelectedIndex == -1) // Если нет, то выводим сообщение. MessageBox.Show("Нет выделенной строки"); else // Иначе .. Удаляем выделенную строку listBox1.Items.RemoveAt(listBox1.SelectedIndex); //Сохраняем новый список в файле using (StreamWriter sw = new StreamWriter("C:\\browser.ini")) { sw.WriteLine(listBox1.Items.Count.ToString()); for (int j = 0; j < listBox1.Items.Count; j++) sw.WriteLine(listBox1.Items[j]); } }
|