Автор: Пользователь скрыл имя, 02 Апреля 2012 в 11:14, лабораторная работа
4 лабораторные работы: программы на языке C#
Лабораторная работа №1. Разработка элементарных программ на языке программирования C#. Написать C# программу, реализующую вычисления согласно варианту задания. Исходные данные вводятся с клавиатуры (на форме приложения).
Лабораторная работа №2. Реализовать простое оконное приложение согласно варианту. Для создания приложения воспользуйтесь встроенными мастерами среды разработки, с помощью которого создайте каркас простейшего приложения, содержащего одну форму. На форме должно быть основное меню с возможностью открытия одного файла, который потом будет отображен на самой форме.
Лабораторная работа №3. Работа с графикой GDI. Спрайты. Реализовать приложение, в котором на фоне статичной картинки перемещаются анимированные спрайты, согласно варианту.
Лабораторная работа №4. Создание собственных компонентов. Изучить принципы разработки компонент. Реализовать компонент согласно варианту, и построить приложение использующее данный компонент.
Федеральное агентство по образованию
Государственное образовательное учреждение высшего
профессионального образования
«Хакасский государственный университет им. Н.Ф. Катанова»
Институт информатики и телематики
Кафедра Информационных технологий и систем
Отчет
по лабораторной работе № 4
Выполнил:
Студентка группы 3-48
Гольцова М.Л.
Проверил:
Клещ А.В.
Абакан, 2012 г.
Создание собственных компонентов. Изучить принципы разработки компонент. Реализовать компонент согласно варианту, и построить приложение использующее данный компонент.
Треугольная кнопка.
Создаем форму
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace лаба_4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
knopka btn = new knopka();
btn.Parent = this;
btn.Left = 50;
btn.Top = 50;
btn.Width = 100;
btn.Height = 100;
}
}
}
Создаем класс
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace лаба_4
{
class knopka:Button
{
public knopka()
{
//Конструктор будет пустой
}
protected override void OnResize(EventArgs pevent)
{
// Вертикальный треугольник
Point[] myTriAngel =
{
new Point(50, 0),
new Point(100, 100),
new Point(0, 100)
};
base.OnResize(pevent);
GraphicsPath path = new GraphicsPath();
path.AddPolygon(myTriAngel);
Region = new Region(path);
}
protected override void OnPaint(PaintEventArgs pevent)
{
base.OnPaint(pevent);
Graphics graphics = pevent.Graphics;
Rectangle rect = ClientRectangle;
// Вертикальный треугольник
Point[] myTriAngel =
{
new Point(50, 0),
new Point(100, 100),
new Point(0, 100)
};
// Создаем градиент 1
PathGradientBrush pthGrBrush1 = new PathGradientBrush(myTriAngel);
// Цвет для обычного состояния
Color[] colors1 =
{
Color.FromArgb(255, 0, 128, 0), // Темнозеленый
Color.FromArgb(255, 0, 255, 255), // Голубой
Color.FromArgb(255, 0, 0, 255) // Синий
};
// Переходы
float[] relativePositions =
{
0f, // Темнозеленый по краю треугольника.
0.4f, // Светлоголубой 40 процентов всего пути до центра
1.0f // Синий
};
ColorBlend colorBlend1 = new ColorBlend();
colorBlend1.Colors = colors1;
colorBlend1.Positions = relativePositions;
pthGrBrush1.
// Создаем градиент для нажатого состояния
PathGradientBrush pthGrBrush2 = new PathGradientBrush(myTriAngel);
// Цвет для нажатого состояния
Color[] colors2 =
{
Color.FromArgb(255, 0, 0, 255), // Синий
Color.FromArgb(255, 0, 255, 255), // Голубой
Color.FromArgb(255, 0, 128, 0) // Темнозеленый
};
ColorBlend colorBlend2 = new ColorBlend();
colorBlend2.Colors = colors2;
colorBlend2.Positions = relativePositions;
pthGrBrush2.
bool bPressed = false;
if (MouseButtons == MouseButtons.Left)
bPressed = true;
if (bPressed)
graphics.FillRectangle(
else
graphics.FillRectangle(
}
}
}
3