Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по Летней практике....docx
Скачиваний:
0
Добавлен:
23.04.2019
Размер:
339.9 Кб
Скачать

Міністерство освіти і науки, молоді та спорту україни

Одесский Национальный Университет им. И.И. Мечникова

Институт Математики, Экономики и Механики

Факультет Математики и Механики

Кафедра Теоретической Механики

Індивідуальне завдання

З ЛІТНЬО – ОБЧИСЛЮВАЛЬНОЇ ПРАКТИКИ

Студента 2-го курсу

Спеціальності 06.080301 “Механіка”

Смазчука В.А________

Керівник

Доцент Рачинська А. Л.

Завідуючий кафедрою

Проф. Асланов С. К.

Одесса 2011

СОДЕРЖАНИЕ

ПОСТАНОВКА ЗАДАНИЯ……………………………………………………..3

РЕШЕНИЕ ЗАДАЧИ…………………………………………………………….4

ЭТАП ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ…………………………...10

ОБРАЗЕЦ РАБОТЫ ПРИЛОЖЕНИЯ………………………………….……..13

ЭТАП НАПИСАНИЯ ПРОГРАММНОГО КОДА…………………………….14

ПРИЛОЖЕНИЕ…………………………………………………………….…..16

ЛИТЕРАТУРА…………………………………………………………….……18

2

ПОСТАНОВКА ЗАДАНИЯ

1. Разработать пакет собственного компонента.

Класс разработанного компонента должен являться наследником , имеющегося в C# класса . В новом компоненте должны быть предусмотрены собственные свойства , метод и событие . Для нового компонента предусмотреть собственную пиктограму, которую необходимо включить в пакет.

2. Разработать компонент , являющийся наследником класса checkBox . Компонент должен иметь три новых свойства в Инспекторе Обьектов : Value1 , Value2 , Operators . Value1 и Value2 - это числовые значения . Свойство Operators имеет тип char, так как может содержать только один символ - математический оператор . У компонента имеется метод Raschet , которий производит действие типа Value1 Operators Value2 . Полученный результат отображается в свойстве Text компонента . Кроме того , компонент имеет событие On Raschet , которые вызывается в тот момент , когда вызывается метод Raschet .

3. Пользовательские управляющие элементы наследуются от класса UserControl. Это базовый класс предоставляет вновь создаваемому элементу все базовые возможности, которыми должен обладать управляющий элемент в .NET — на долю программиста остается только создание самого элемента. В качестве управляющего элемента может создаваться все, что угодно, начиная от надписи с каким-либо оригинальным дизайном и до занимающего весь экран табличного управляющего элемента. (В отличие от пользовательских элементов, специально создаваемые управляющие элементы обычно являются производными от класса Сontrol, а не от класса UserControl.) При работе с управляющими элементами следует принимать ряд положений как должное, и если создаваемый вами элемент не отвечает им, то высока вероятность того, что такой элемент не будет использоваться другими пользователями.

4. Для создания нового элемента в нем используются два уже существующих, что позволяет за один шаг максимально просто решить задачу, которая довольно часто возникает при программировании в Windows: добавить к форме надпись, далее добавить к той же самой форме текстовое окно, а затем определить местоположение этого окна относительно надписи.

3

РЕШЕНИЯ ЗАДАЧИ

  1. Создаем новый проект С# в Visual Studio. Выбираем проект с названием Windows Control Library. Назовите вновь создаваемый проект LabelTextbox.

  2. Программа разработки форм представляет рабочую поверхность, которая несколько отличается используемой до сих пор. Во-первых, ее площадь оказывается существенно меньше, чем обычно, а, во-вторых, она вообще не выглядит как диалоговое окно.

Щелкнув мышью на рабочей поверхности, мы увидим свойства управляющего элемента. Изменяем имя элемента на ctlLabelTextBox. (Принято имена элементов задавать с префиксом ctl.)

4

  1. Перенесем на форму метку с палитры компонентов. Изменим ее имя на lblTextBox. Присвоим свойству Text значение Label. Присвойте свойству AutoSize значение true. Это приведет к тому, что размеры надписи будут определяться в соответствии с размерами текста.

  2. Перенесем на форму текстовое окно с палитры компонентов. Изменим его имя на txtLabelText и очистите свойство Text.

На этапе разработки нам не известно, каким образом пользователь пожелает расположить эти управляющие элементы. Поэтому нужно написать код, который будет отвечать за расположение надписи и текстового окна. Этот же код будет определять местоположение управляющих элементов и тогда, когда элемент LabelTextbox будет помещен в форму.

Структура управляющего элемента выглядит пока весьма невпечатляюще: Textbox свободно перемещается по рабочей поверхности, а сама поверхность слишком велика. На самом

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

5

Сначала следует определить взаимное расположение управляющих элементов друг относительно друга. Поскольку пользователь должен самостоятельно принимать решение об этом расположении, мы добавим элементу не одно, а два свойства. Одно из них будет называться Position (положение) — оно предоставляет пользователю возможность выбора: Right (справа) и Below (внизу). Если пользователь выбирает значение Right, то в дело вступает второе свойство. Оно называется TextBoxMargin (поля текстового окна) и представляет собой целое число, соответствующее числу пикселей между левым краем управляющего элемента и тем местом, в котором должно быть размещено текстовое окно. Если пользователь задает значение, равное 0, то текстовое окно размещается так, чтобы его правый край располагался вровень с правым краем управляющего элемента