Методические указания по выполнению лабораторной работы




Лабораторная работа №10

Тема. Создание оригинального элемента управления ActiveX

 

Цель. Изучить технологию ActiveX и возможные подходы к созданию ActiveX компонент. Научиться создавать оригинальные элементы управления ActiveX.

 

Вы должны.

1. Ознакомиться с основными принципами технологии ActiveX.

2. Создать собственный оригинальный элемент управления ActiveX.

3. Научиться разрабатывать корректный код процедуры перерисовки компонента.

4. Научиться создавать приложения для тестирования элементов управления ActiveX.

 

Условие лабораторной работы

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

Пусть элемент управления выглядит как прямоугольник, в котором располагается произвольное число столбцов гистограммы. Для простоты, значение каждого столбца – целое число в промежутке от нуля до девяти включительно. Каждый раз при изменении количества столбцов или их величины, гистограмма перерисовывается.

 

Методические указания по выполнению лабораторной работы

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

По умолчанию, новый класс наследуется от базового класса System.Windows.Forms.UserControl, поэтому в код класса необходимо добавить строку Inherits System.Windows.Forms.UserControl

2. Опишите переменную Columns (количество столбцов гистограммы) и массив Values (массив для хранения значения каждого столбца) как переменные целого типа.

3. Чтобы узнать текущее количество столбцов гистограммы или изменить эту величину, необходимо свойство Elements.

Public Property Elements() As Integer

Get

Return Columns 'вернуть количество столбцов

End Get

Set(ByVal Value As Integer)

ReDim Values(Value) 'изменить размер массива

For i = 0 To Value - 1

Values(i) = 0 'обнулить все столбцы

Next i

Columns = Value 'обновить значение переменной Columns

ShowHistogram() 'перерисовать гистограмму

End Set

4. При помощи свойства Element() будет происходить обращение к отдельному столбцу:

Public Property Element(ByVal idx As Integer) As Integer

Get

Return Values(idx)

End Get

Set(ByVal Value As Integer)

Values(idx) = Value

ShowHistogram()

End Set

End Property

5. Служебная процедура ShowHistogram() будет перерисовывать рабочую область гистограммы в том случае, если было изменено количество столбцов, или их значения.

Private Sub ShowHistogram()

Метод CreateGraphics() возвращает графическую поверхность g, ассоциированную с элементом управления Рисование на этой поверхности означает рисование в рабочей области элемента управления.

Dim g As Graphics = CreateGraphics()

В массиве Colors перечислены цвета столбцов гистограммы. Первый столбец будет нарисован синим цветом, второй – серым и т.д. до шестого столбца. Седьмой столбец снова будет синим, и т.д.

Dim Colors() As Color = {Color.Blue, Color.Gray, Color.Green, Color.Red, Color.Yellow, Color.White}

Перед тем как рисовать гистограмму на экране, необходимо очистить ее рабочую область. Метод FillRectangle рисует прямоугольник заданной кистью определенного цвета.

g.FillRectangle(New SolidBrush(BackColor),0,0,Width,Height)

Если в гистограмме нет ни одного столбца, перерисовка заканчивается. В противном случае вычисляется ширина и высота каждого столбца гистограммы с единичным значением. Затем в цикле рисуется каждый столбец.

If Columns = 0 Then Return

ewidth = Width / Columns

eheight = Height / 9

For i = 0 To Columns - 1 'в цикле рисуется каждый столбец

Dim brush As New SolidBrush(Colors(i Mod 6))

g.FillRectangle(brush, i*ewidth, (9-Values(i))*eheight, ewidth, Values(i)*eheight)

Next i

6. Функция-обработчик события Paint базового класса необходима в том случае, если например, было свернуто, а затем восстановлено главное окно приложения.

Private Sub HistogramBox_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)

Handles MyBase.Paint

ShowHistogram()

End Sub

7. Откомпилируйте проект.

Библиотека dll, содержащая элемент управления, появится в каталоге bin в папке Debug проекта после первой компиляции.

8. Для демонстрации использования библиотеки необходимо создать новый проект Windows Application. Далее вызвать диалоговое окно «Выбор элементов панели элементов» (можно щелкнуть правой кнопкой мыши на панели элементов и выбрать пункт «Выбрать элементы…»). На вкладке «Компоненты.NET Framework» следует нажать кнопку «Обзор» и выделить библиотечный файл элемента управления (.dll). В списке компонентов среды.NET и на панели элементов управления появится новый элемент управления.

9. Сделайте так, чтобы при каждом щелчке на кнопке, случайным образом генерировалась новая гистограмма, т.е. случайным образом генерировалось количество столбцов и их значения. Используйте свойство Elements и массив Element. Для генерации случайного числа используется метод Next() переменной типа Random.

Dim Rnd As New Random

Dim a As Integer = Rnd.Next(1, 10)



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-01-30 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: