Хелпикс

Главная

Контакты

Случайная статья





Лабораторная работа №9. Тема. Доработка существующего элемента управления. Условие лабораторной работы. Методические указания по выполнению лабораторной работы



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

Тема. Доработка существующего элемента управления

 

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

 

Вы должны.

1. Изучить основные положения технологии ActiveX.

2. Ознакомиться с процессом созданий ActiveX компонент.

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

 

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

Создать элемент управления на базе элемента управления TextBox, в который можно вводить только цифры. При этом запретить копирование и вставку текста в текстовое поле, запретить вызов контекстного меню, запретить присваивание значения свойства Text непосредственно из кода программы.

 

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

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

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

 

2. Чтобы получить контроль над всеми сообщениями, поступающими элементу управления, следует использовать процедуру обработки события WndProc.

Protected Overrides Sub WndProc(ByRef m As _

System. Windows. Forms. Message)

3. Процедура WndProc позволяет отслеживать сообщения, поступающие элементу управления. С помощью оператора Select … Case можно отслеживать значение аргумента m. Msg и в зависимости от поступившего сообщения выполнять те или иные действия.

Например, если нажатая клавиша не является ни числом, ни клавишей BackSpace, поступившее сообщение не обрабатывать.

Case WM_CHAR

If (m. WParam. ToInt32 > 57 Or m. WParam. ToInt32 < 48) And m. WParam. ToInt32 < > 8 Then Return

Чтобы запретить копирование и вставку текста в элемент управления, не следует обрабатывать нажатия клавиш Ctrl+C, Ctrl+V, Ctrl+X. Это можно сделать при помощи следующих строк кода:

If Keys. ControlKey And (m. WParam. ToInt32 = 3 Or m. WParam. ToInt32 = 22 Or m. WParam. ToInt32 = 24) Then Return

Чтобы не допустить нажатия правой кнопки мыши следует обработать сообщение WM_RBUTTONDOWN.

Case WM_RBUTTONDOWN

Return

4. Чтобы оператор Select … Case работал корректно, необходимо описать следующие константы:

Public Const WM_CHAR As Integer = & H102

Public Const WM_RBUTTONDOWN As Integer = & H204

5. По завершении оператора Select … Case необходимо передать дальнейшую обработку сообщений базовому классу.

MyBase. WndProc(m)

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

Public Overrides Property Text() As String

Get

Return MyBase. Text. ToString

End Get

Set(ByVal Value As String)

'оставить процедуру пустой

End Set

End Property

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

После компиляции на панели элементов появится наш новый элемент управления (имя элемента совпадает с именем класса) и чтобы его протестировать в этом же проекте, нужно поместить элемент на форму UserControl и запустить проект.

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

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

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

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



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.