|
Прошел курс. Получил код 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.
Файлы с картинками должны быть помещены в один каталог со сборкой, иначе нужно указать путь у файлу (абсолютный или относительный). Одна из картинок, выводимых этим кодом, будет такой (это, конечно же, опять я - любимый!)
Кроме того, в метке можно использовать изображения, созданные в качестве ресурсов и прикрепленные к исполняемому файлу программы.
