000149. Кнопки, Текст-боксы и метки
Last updated
Last updated
Кнопки, Текст-боксы и метки||wmysterio|wmysterio|wmysterio@yandex.ru|/||Всем хай! Мы продолжаем изучать формы 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# :)
|1201|1|0|73365337png
600152
400101\|68930594
png32
32|00061105png
574388
400270\|22199530
png570
388400
272|70475274png
175119\|76188703
png259
113|73454444png
260114\|81121380
png600
458400
305|99596947png
287141\|97335681
png284
60|57348228png
500116
40092\|80016752
png600
158400
105|07881039png
600447
400298\|59518869
png123
34|52482416png
16399\|88734570
png498
376399
302||knopki_tekst_baksy_i_metki|1392798426