Рейтинг - 5.0 (2)

Всем хай! Мы продолжаем изучать формы Windows, и сегодня мы ознакомимся ещё с двумя элементами, как кнопки и метками.

Начнём с кнопок. Они находятся в категории "Стандартные элементы управления". Перетащим её на нашу форму:

Давайте изменим внешне нашу кнопку, добавив изображение на неё. Оставим пустое поле в свойстве кнопки "Text", что бы он не мешал нам. Я подготовил специальный флаг, который вот: (выложил, что бы вы могли его скачать если вдруг надумаете повторять те действия, которые в данный момент делаю я)

Теперь делаем следующее в свойствах кнопки:
1) Находим свойство "Image", и нажимаем на "...".
2) Перед нами появится окно выбора ресурса. Нажимаем на кнопку "Импорт":

И указываем картинку, которую хотим добавить.
3) После загрузки в ресурсы картинки, выбираем её, и нажимаем "ОК":


Теперь на нашей кнопке появился этот рисунок. Чтобы он нормально отображался на форме, изменим размер кнопки на 34х34:

Переместим нашу кнопку в правый верхних угол и зададим ей свойство "Anchor" на это:

А также это же свойство для текстового поля:

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

Теперь программа очень напоминает  обычный браузер, только упрощенный. Сами-по-себе кнопка и поле бесполезные, так как не выполняют никаких действий. Наша задача - заставить кнопку переходить на сайт, который пользователь введёт в текстовое поле. Для этого выделим нашу кнопку и зайдём в её свойства. Найдите там "События"(иконка молнии):

и найдите там поле "Click", поле чего нажмите 2 раза ЛКМ на пустом поле возле него:

Компилятор сформирует нам обработчик события, в котором мы должны прописать переход на сайт:

В нём мы должны прописать следующий код:
webBrowser1.Url = new Uri( textBox1.Text );
Действует это так:
1) Получаем ссылку с помощью конструктора new Uri, в параметр которого строковый адрес web-ресурса. В место строки мы указываем текст "Тестового поля" и создаём новый объект - Веб-ссылка. Общая схема такова:

Но здесь нужно быть осторожным, так как ссылка имеет строгий формат(как и обычная web-ссылка). Она должна содержать протокол http или подобные, должна содержать латинские символы. Что-бы избежать ошибок, типа "Недопустимый URI: Невозможно определить формат URI." кинем наш код блок try:
try {
     webBrowser1.Url = new Uri( textBox1.Text );
} catch { return; }
Таким образом мы обезопасили себя от нестабильной работы. Однако нужно сообщать пользователю о неверном формате, иначе он будет в недоумении от того, почему браузер не переходит по заданной ссылке.

Есть два способа этого сделать:
1) Через статичный класс MessageBox. В блоке catch в место return нужно написать:
} catch {
     MessageBox.Show("Неправильный адрес WEB-ссылки");
}


Этот способ самый используемый, но я предлагаю вам сделать вывод сообщения по-другому. С помощью меток, заодно и изучим их.

Найдём в панели инструментов объект Label:

И переместим его мышью в нижнюю часть макета программы:

Оставим свойство этого Лейбла пустым. А затем в исключении напишем следующий код:
        private void button1_Click( object sender, EventArgs e ) {
            try {
                webBrowser1.Url = new Uri( textBox1.Text );
                label1.Text = "";
            } catch {
                label1.Text = "Неверное имя ссылки!";
            }
        }
Если срабатывает исключение, то мы задаём имя программно для нашей метки. Если всё ввели правильно, то текст метки опять делается пустым. Графически этот процесс можно изобразить так:

Программа ожидает событие "Клик" а затем проверяет текстовое поле на наличие ошибок. Если такие соблюдаются, то идёт обработка исключения с указанием причины путём заполнения текстом метки и идёт прыжок на ожидания события клик. Если ссылка правильная, то текст метки очищается, идёт переход браузера по ссылке и возврат на ожидание  события "Клик".

Надеюсь, с этим вопросов не возникнет. На этом всё, жду вас в следующих уроках по c# :)

SanKing   (02.11.13 12:27)
Всё, пошёл создавать свой браузер biggrin Спа-си-бо!!!

wmysterio   (02.11.13 23:20)
SanKing, незачто smile создать не проблема. Беда в том, чтобы научить его разуму smile Он ведь обычный Internet Explorer 6 smile

SanKing   (04.11.13 14:13)
wmysterio, да, блин, уже заметил. Я хотел, чтобы он воспринимал адреса без http://, вставляя их в начало адреса, если такой текст не найден в строковой переменной, в конечном счёте сделал это, но застрял на том, как "заставить" браузер правильно переходить по обновлённой переменной. Я считаю, если как следует покопаться, то можно сделать и так. Но ГЛАВНАЯ проблема в том, что если сайта не существует, браузер просто показывает своё идиотское окно с ошибкой, а не обновляет метку, каке задумывалось.
В итоге выходит, что "Невеное имя сайта" появляется ТОЛЬКО В ТОМ случае, если дана пустая строка. Печальбеда... sad

wmysterio   (04.11.13 23:14)
SanKing, Ну добавлять в начале http без проблем, покажу в следующих уроках.
Вход на сайт

Поиск
Категории раздела
Мини-чат
Пожалуйста, все вопросы по скриптингу задавать на форуме!
Наш опрос
Как Вы относитесь к ситуации с OpenIV?
Всего ответов: 8
Активность на сайте
Пожертвования
Кошельки WebMoney:
U859420971000
R407741810602
Z331072372430
E314272616890
Друзья сайта
Полезные ресурсы
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили:
Реклама