Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

pragma once Hard / Занятие 13

.doc
Скачиваний:
14
Добавлен:
13.03.2015
Размер:
58.37 Кб
Скачать

Создание элемента управления Windows Forms

Пример 13.1. Создание составного элемента управления (элемента, который содержит другие элементы управления).

Данный пример взят из справочной системы MS Visual Studio.

Элементы управления Windows Forms представляют собой компоненты, которые могут добавляться в приложения Windows Forms (приложения с графическим интерфейсом пользователя, предназначенные для среды CLR).

Создается элемент управления Windows Forms, служащий для отображения числового значения. Это значение увеличивается на единицу каждый раз, когда пользователь щелкает мышью метку в приложении. Для тестирования элемента управления будет также создан проект приложения Windows Forms.

При создании собственного элемента управления необходимо выполнить следующие действия:

  • создать новый проект;

  • добавить необходимые элементы;

  • добавить пользовательское свойство в элемент управления;

  • добавить проект для тестирования элемента управления;

  • поместить элемент управления в приложение;

  • запустить приложение.

Создание проекта элемента управления Windows Forms

  1. В меню Файл выберите пункт Создать и затем пункт Проект.

  2. В узле Visual C++ области Типы проектов выберите пункт CLR, а затем в области Установленные шаблоны Visual Studio выберите пункт Библиотека элементов управления Windows Forms.

  3. Введите имя проекта, например elem.

  4. Введите имя решения, отличное от имени проекта, например test.

Откроется конструктор Windows Forms с областью для добавления элементов управления, которые требуется разместить на поверхности разработки элемента управления.

Разработка элемента управления

На данном этапе в область разработки элемента управления добавляется элемент управления Label. Далее устанавливается ряд свойств для разрабатываемого элемента управления и содержащегося в нем элемента управления Label.

  1. Щелкните элемент управления, чтобы выделить его, и, используя Окно свойств, установите его свойства следующим образом:

  • для свойства Size установите значение 100, 100;

  • для свойства BorderStyle установите значение Fixed3D.

Границы метки станут видны после размещения элемента управления в приложении.

  1. Перетащите элемент управления Label из окна Панель элементов на поверхность разработки и расположите его в центре элемента управления.

Задайте следующие свойства для метки:

  • для свойства BorderStyle установите значение FixedSingle;

  • для свойства Text установите значение 0 (ноль);

  • для свойства Autosize установите значение False;

  • для свойства Size установите значение 30, 20;

  • для свойства TextAlign установите значение MiddleCenter.

Свойство Name (по которому на него производятся ссылки в коде) оставьте без изменений (label1). Элемент управления должен выглядеть примерно следующим образом:

  1. Добавьте обработчик событий для события метки Click (событие по умолчанию для метки), дважды щелкнув метку.

В обработчик введите следующий код:

int t = System::Int32::Parse(label1->Text);

t++;

label1->Text = t.ToString();

Добавление пользовательского свойства в элемент управления

Создадим пользовательское свойство ClickAnywhere, которое указывает на то, должно ли отображаемое в элементе управления число увеличиваться при щелчке пользователем на метке или при щелчке в любом месте элемента управления.

  1. Установите курсор после двоеточия первого оператора области действия public в начале файла elem.h, нажмите клавишу ВВОД и введите следующий код:

property bool ClickAnywhere {

bool get() {

return (label1->Dock == DockStyle::Fill);

}

void set(bool val) {

if (val)

label1->Dock = DockStyle::Fill;

else

label1->Dock = DockStyle::None;

}

}

При присвоении свойству ClickAnywhere элемента управления значения true свойство Dock метки принимает значение DockStyle::Fill, и метка растягивается на всю область элемента управления. В этом случае при щелчке в любом месте элемента управления будет вызвано событие Click метки, и число на метке увеличится на 1.

Если свойство ClickAnywhere имеет значение false (значение по умолчанию), свойство Dock метки принимает значение DockStyle::None. Метка не растягивается на всю область элемента управления, и чтобы произошло событие метки Click и число увеличилось, щелчок должен произойти в пределах границ метки.

  1. Произведите построение пользовательского элемента управления. В меню Построение выберите команду Построить решение.

При отсутствии ошибок будет создан элемент управления Windows Forms, содержащийся в файле с именем elem.dll. Этот файл можно найти в структуре каталогов проекта.

Тестирование элемента управления

  1. Создайте проект приложения Windows Forms, на форме которого будут размещены экземпляры элемента управления elem.

  • В меню Файл выберите пункт Создать и затем пункт Проект....

  • В узле Visual C++ области Типы проектов выберите CLR, а затем в области Установленные шаблоны Visual Studio выберите Приложение Windows Forms.

  • Введите имя проекта, например testapp.

  • В раскрывающемся списке Решение обязательно выберите Добавить к решению, вместо параметра по умолчанию Создать новое решение, и затем нажмите кнопку ОК.

Откроется конструктор Windows Forms, отображающий форму Form1 созданного проекта.

  1. Добавьте элемент управления в панель элементов:

  • В меню Проект выберите пункт Ссылки, либо щелкните правой кнопкой мыши проект testapp в окне Обозреватель решений и выберите Ссылки.

Нажмите кнопку Добавить новую ссылку, затем щелкните вкладку Проекты (добавляется ссылка на другой проект в рамках данного решения) и выберите проект elem. Дважды нажмите кнопку ОК.

  • Щелкните правой кнопкой мыши Панель элементов и выберите пункт Выбрать элементы.

Нажмите кнопку Обзор и найдите файл elem.dll в структуре каталогов решения. Выделите его и нажмите кнопку ОК.

Элемент управления elem отобразится в списке Компоненты .NET Framework с установленным флажком. Нажмите кнопку ОК.

Элемент управления отобразится на Панели элементов со значком по умолчанию в виде шестеренки.

  1. Разместите на форме два экземпляра элемента elem так, чтобы они не перекрывали друг друга. Для одного элемента установите значение свойства ClickAnywhere равным true (свойство ClickAnywhere находится в разделе Разное Окна свойств).

  2. В Обозревателе решений щелкните правой кнопкой мыши проект testapp и выберите Назначить запускаемым проектом.

В меню Построение выберите команду Перестроить решение.

  1. Запустите приложение и попробуйте щелкнуть мышью каждый из элементов управления elem.

Если щелкнуть элемент управления, свойство ClickAnywhere которого имеет значение true, число, отображаемое в метке, увеличивается при щелчке в любом месте элемента.

Если щелкнуть элемент управления, свойство ClickAnywhere которого имеет значение false, число, отображаемое в метке, увеличивается только при щелчке мышью в пределах видимых границ метки. На рисунке показано, как может выглядеть приложение после нескольких щелчков мышью:

4

Соседние файлы в папке pragma once Hard