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





Содержание:
  
  • Свойства и события объектов comboBox и webBrowser   
  • Создаём панель закладок



  • Свойства и события объектов comboBox и webBrowser
    События от клавиатуры.

    На этом уроке создадим браузер для просмотра интернет страниц. Для этого создадим новый проект и расставим объекты так, как показано на рисунке:



    В свойствах объекта comboBox1 выберем свойство Items и нажав кнопку "Collection", введём несколько строк - адресов популярных WEB сайтов.



    Двойным щелчком на кнопке button4 ("Перейти") создадим событие для открытия веб страницы:

    private void button4_Click(object sender, EventArgs e)
       {
        webBrowser1.Navigate("http://" + comboBox1.Text);
       }


    Адрес веб страницы записывается в строку ввода comboBox1 и имеет свойство Text. Этот текст, в виде адреса вводится пользователем. Для того, что бы пользователь не набирал лишний раз http:// мы к этой строке прибавляем текст из comboBox1. Попробуем запустить наш браузер на исполнение и введём в строку ввода например, rambler.ru и нажмём кнопку "Перейти".



    Затем, выберем из выпадающего списка, например mail.ru и опять нажмём кнопку "Перейти"



    Браузер работает, но возникает одно неудобство - всё время, при вводе интернет адреса приходится нажимать кнопку "Перейти". Создадим такое событие что бы при нажатии клавиши "Enter" в строке ввода происходило событие аналогичное кнопке "Перейти". Для этого выделим comboBox1 и в закладке событий (Events) найдём событие KeyPress.



    Двойным щелчком создадим событие и допишем нужные строки:

    private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
       {
    // Проверяем нажата ли клавиша Enter (код 13). Аргумент е - код нажатой клавиши
        if (e.KeyChar.Equals((char)13))
       {
    // Если Enter нажат, то вызываем событие нажатия на кнопку "Перейти"
        button4_Click(sender,e);
       }
      }

    Теперь, запустив наш браузер и введя адрес сайта, для перехода можно нажимать "Enter".
    Осталось задействовать кнопки "<" - вернуться, ">" - вперёд и "0" - обновить. Создадим последовательно события для этих кнопок:

    // Вернуться назад
    private void button1_Click(object sender, EventArgs e)
       {
        webBrowser1.GoBack();
       }

    // Перейти вперёд
    private void button2_Click(object sender, EventArgs e)
       {
        webBrowser1.GoForward();
       }

    // Обновить данные в браузере
    private void button3_Click(object sender, EventArgs e)
       {
        webBrowser1.Refresh();
       }


    Теперь браузер работает как полноценное приложение.


    Создаём панель закладок.

    Для создания панели закладок, добавим на браузере ещё одну кнопку "Закладки" (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]);
    }
    }




    Яндекс.Метрика    ©Гуков Константин Михайлович 2006 - 2012     Почта: juvel@mail.ru