Министерство общего и профессионального образования
Российской Федерации
Тверской государственный технический университет
Кафедра электронных вычислительных машин
Отчёт о лабораторной работе № 3
Компоненты.
Выполнил: студент группы
ВМКСС-1003
Зуев Д.В.
Принял: профессор кафедры ЭВМ
А.А. Веселов
г. Тверь
2 012
Задание на лабораторную работу.
Ознакомиться с разделом 1, в котором описывается основные понятие компонентах, их особенностях и способы их построения.
На основе описания в разделе 2.1 создать первый простейший элемент управления, установить его на палитру, создать для него новую пиктограмму и протестировать его.
На основе описания, приведенного в разделе 2.2 создать второй нестандартного элемента управления, включая установку его на палитру, создание для него новой пиктограммы и проверку его работоспособности в процессе тестирования.
В соответствии программным текстом, приведенным в разделе 2.3 создать комбинированный элемент пользовательского интерфейса.
Составить пояснительную записку к отчету о проделанной лабораторной работе.
Описание работы программы
Программа Application1 содержит новую компоненту (Текст с градиентной заливкой). Application2 также содержит компоненту – часы. Application3 содержит компоненту которая содержит полосу прокрутки, числовое поле для установки градации серого 3х цветов (R, G, B).
Алгоритм при изменении цвета компоненты в Application1
Алгоритм при изменении времени Application2
Алгоритм при изменении значения в Application3
Исходные тексты компонент
Application1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace WindowsFormsApplication1
{
public partial class UserControl1 : Label
{
private Color startColor = Color.LightGreen;
private Color endColor = Color.DarkBlue;
[Category("Gradient"), Description("Цвет начала заливки"),
DefaultValue(typeof(Color), "LightGreen")]
public Color StartColor
{
get { return startColor; }
set { startColor = value; OnChangeProperties(); }
}
[Category("Gradient"), Description("Цвет завершения заливки"),
DefaultValue(typeof(Color), "DarkBlue")]
public Color EndColor
{
get { return endColor; }
set { endColor = value; OnChangeProperties(); }
}
// Перерисовать себя при изменении свойств
private void OnChangeProperties()
{
Invalidate();
if (onGradientChange != null)
{ onGradientChange(this, new EventArgs()); }
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe); // Вызываем базовый метод OnPaint()
Color c1 = Color.FromArgb(100, startColor);
Color c2 = Color.FromArgb(100, endColor);
Brush b = new LinearGradientBrush(ClientRectangle, c1, c2, 10);
pe.Graphics.FillRectangle(b, ClientRectangle);
b.Dispose();
}
private event EventHandler onGradientChange;
[Category("Gradient"), Description("Вызывается при изменении свойств
заливки")]
public event EventHandler OnGradientChange
{
add { onGradientChange += value; }
remove { onGradientChange -= value; }
}
public UserControl1()
{