Языки программирования

Разработка программы «Конвертер валют»

В этой статье мы хотим написать реальное приложение «Конвертер валют», который будет получать курсы валют у Google.

Разработку приложения начнем с разработки формы (Windows Forms) приложения. Запускаем Visual Studio и создаем проект:
В статье «Создание графического калькулятора.» мы подробно рассматривали интерфейс созданного проекта. Советую зайти, изучить и продолжить разработку нашего приложения.

На форму мы поместим 1 TextBox, 3 Label’a, 2 ListBox’a, 1 Button в верхней части формы. Также мы добавили WebBrowser. Он позволяет получить содержимое любой web-страницы. Используя его метод Navigate(), можно загружать любую страницу. И в нижней части у нас имеется Panel. Итоговая форма приложения:
В оба ListBox’a мы заносим названия валют. Для этого мы нажимаем на стрелочку в правом углу ListBox’a и в появившейся панели нажимаем «Изменить элементы…»:
В остальных элементах просто меняем свойство «text» на нужное. Например:
Форматирование текста произведите на свое усмотрение.

В TextBox’e, обозначаемом количеством переводимой валюты, мы заменили свойство Text, вписали туда цифру «1». При запуске программы у нас в нём автоматически будет стоять единица для удобства пользователя, чтобы он лишний раз не заполнял эту графу, если ему захочется узнать цену одной единицы валюты относительно другой или внести свою цифру.

Panel нам нужна чтобы скрыть что находится выше и ниже её на странице поисковика. Для этого нужно отрегулировать WebBrowser.

Регулировать положение WebBrowser’a надо будет до тех пор, пока при запросе в Panel не будут получаться примерно такие виды, чтобы не было верха и не было низа от поисковика:
В свойствах WebBrowser отключаем полосы прокрутки (скроллбары), чтобы пользователь не мог «листать» содержимое нашего WebBrowser’a вверх и вниз:
На этом внешняя оболочка готова. Теперь приступаем к коду. Щёлкаем по Button’у дважды и переносимся в тело кода. Для начала поднимемся чуть выше в тело под наименованием public Form1(). Внутри него мы напишем следующее:
        public Form1()
        {
            InitializeComponent();
            listBox1.SelectedIndex = 0;
            listBox2.SelectedIndex = 1;
        }
Здесь мы избегаем ошибки программы, когда ни в ListBox’ах, ни в Textbox не будет ничего, так как теперь по-любому в ListBox’ах что-то будет выбрано. А во-вторых, мы облегчаем пользование программой человеку, если он решил выполнить перевод из рублей в доллары (а чаще всего так и бывает). Под индексом «0» у нас в ListBox’е записано первое значение «RUB», под индексом «1» – второе значение «USD».

Далее возвращаемся к нашей кнопки «Перевести» и пишем для него обработчик событий:
private void button1_Click(object sender, EventArgs e)
        {
            string from, to;

            from = listBox1.SelectedItem.ToString(); // выбранная валюта в 1 списке
            to = listBox2.SelectedItem.ToString(); // выбранная валюта во 2 списке

            if(from==to)
            {
                MessageBox.Show("Это одна и та же валюта!", "Внимание!");
            }
            else if(textBox1.Text=="")
            {
                MessageBox.Show("Введите количество валюты!", "Внимание!");
            }
            else
            {
                webBrowser1.Navigate("https://www.google.ru/search?q=" + textBox1.Text + "" + from + " %D0%B2 " + to);
            }
        }
Чтобы избежать ошибки программы мы предусматриваем поведение пользователя и проверяем ввод и выбор валюты.

В последней строчке кода мы отправляем запрос на перевод валюты в Google. Метод webBrowser1.Navigate загружает ссылку, записанную в скобках, в WebBrowser.

На этом наше приложение готово к работе. Скомпилируйте программу, нажав на “Пуск” и попробуйте перевести валюту. Итоговый интерфейс программы:
Самоучитель по C#