Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет: Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.
Как активировать код? |
Класс Control и стандартные элементы управления (обзор)
Контейнер радиокнопок GroupBox
Этот контейнер наследует класс Control и сам является видимым элементом управления (рамка с надписью в свойстве Text ), используемым при формировании пользовательского графического интерфейса. Главное его применение - организовать согласованную работу радиокнопок. Он объединяет их в группы и все переключатели, принадлежащие одной группе, становятся взаимоисключающими. Класс GroupBox не наследует, в отличие от Form, класс ContainerControl, где переход между дочерними элементами выполняется нажатием клавиши Tab. Навигация между радиокнопками внутри GroupBox выполняется клавишами-стрелками.
Общий контейнер Panel
Этот элемент управления является (как и Form ) потомком класса ScrollableControl, поэтому имеет полосы прокрутки. Он также имеет визуальное представление и может служить контейнером элементов управления при формировании пользовательского интерфейса.
Метка Label
Она отображает нередактируемый текст, заданный в свойстве Text. Хотя метка может выводить многострочный текст, если увеличить ее размер по высоте, но она не выводит полос прокрутки, если текст не умещается в элементе управления.
Кроме текста метка может отображать объекты типа Image. Один из способов состоит в присвоении свойству Image загруженного файла, например (проект Test )
using System; using System.Drawing; using System.Windows.Forms; namespace Test { class MyClass : Form { public MyClass() { // Создание и настройка элементов управления Label lblBmp = new Label(); lblBmp.Parent = this; lblBmp.Dock = DockStyle.Fill; lblBmp.Image = Image.FromFile("Photo.bmp"); lblBmp.Tag = "Рисунок bmp"; Label lblJpg = new Label(); lblJpg.Parent = this; lblJpg.Dock = DockStyle.Fill; lblJpg.Image = Image.FromFile("Photo.jpg"); lblJpg.Tag = "Рисунок jpg"; Label lblPng = new Label(); lblPng.Parent = this; lblPng.Dock = DockStyle.Fill; lblPng.Image = Image.FromFile("Photo.png"); lblPng.Tag = "Рисунок png"; lblBmp.BringToFront();// Меняем Z-последовательность this.Text = (string)lblBmp.Tag;// Заголовок окна // Подписываем на событие Click lblBmp.Click += new EventHandler(lbl_Click); lblJpg.Click += lbl_Click; lblPng.Click += lbl_Click; } void lbl_Click(object sender, EventArgs e) { Control ctrl = sender as Control; if (ctrl == null) { MessageBox.Show("Не могу привести типы"); return; } this.Controls.Remove(ctrl); if (this.Controls.Count > 0) { this.Text = (string)this.Controls[0].Tag; this.Controls[0].BringToFront(); } else this.Text = "Меток больше нет"; } } }Листинг 13.8.
Файлы с картинками должны быть помещены в один каталог со сборкой, иначе нужно указать путь у файлу (абсолютный или относительный). Одна из картинок, выводимых этим кодом, будет такой (это, конечно же, опять я - любимый!)
Кроме того, в метке можно использовать изображения, созданные в качестве ресурсов и прикрепленные к исполняемому файлу программы.