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

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

Задание:

1. Дополнить таблицу Client базы данных продажи полем Foto типа OLE для помещения туда фотографий клиентов.

2. Заполнить данное поле с помощью графических файлов.

3. Создать проект из одной формы.

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

5. Обеспечить возможность изменения данных в поле Foto (выбор файла с изображением) с помощью двойного щелчка мышью по элементу PictureBox.

6. Обеспечить возможность изменения размеров формы.

7. Обеспечить подбор оптимальных размеров элемента PictureBox.

Текст программы:

Главная форма проекта:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

namespace Компьютерная_графика__6

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void clientBindingNavigatorSaveItem_Click(object sender, EventArgs e)

{

this.Validate();

this.clientBindingSource.EndEdit();

this.tableAdapterManager.UpdateAll(this.sale1DataSet);

}

private void Form1_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "sale1DataSet.client". При необходимости она может быть перемещена или удалена.

this.clientTableAdapter.Fill(this.sale1DataSet.client);

}

private void fotoPictureBox_DoubleClick(object sender, EventArgs e)

{

OpenFileDialog op = new OpenFileDialog();

op.Filter = "Изображения|*.png";

if (op.ShowDialog() == DialogResult.OK)

{

fotoPictureBox.Image = Image.FromFile(op.FileName);

}

}

}

}

Контрольный пример:

Образец главной формы проекта:

Результат изменения картинки:

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

Задание:

1. Создать проект из двух форм.

2. Нанести на главную форму меню из одного пункта «Параметры градиента» и одну кнопку с надписью: «Старт/Пауза».

3. Присвоить второй форме заголовок «Параметры градиента».

4. На вторую форму нанести две кнопки с надписями: «Стартовый цвет» и «Конечный цвет», а также элемент ComboBox и Label с надписью: «Параметры заполнения», а также две кнопки с надписями «OK» и «Отмена».

5. Нанести на вторую форму элемент типа ColorDialog.

6. При нажатии на кнопку «Стартовый цвет» обеспечить вызов диалогового окна выбора цвета. В случае выбора пользователем какого-либо цвета нарисовать рядом с кнопкой квадрат выбранного цвета.

7. Аналогичным образом написать обработчик события нажатия кнопки «Конечный цвет».

8. Занести в элемент ComboBox пункты «От правого верхнего к левому нижнему углу», «От левого верхнего к правому нижнему углу», «Слева направо», «Сверху вниз».

9. При нажатии на кнопку OK обеспечить возврат на главную форму с сохранением параметров выбранных двух цветов и параметров заполнения, при нажатии на кнопку «Отмена» обеспечить возврат на главную форму без сохранения указанных параметров.

10. На главной форме при нажатии кнопки «Старт/Пауза» создать линейную градиентную кисть с выбранными на второй форме параметрами.

11. Нарисовать с помощью этой кисти на форме квадрат размером 150х150 с координатами вершины (100,100).

12. Обеспечить вращение данного квадрата вокруг центра с шагом 1 градус и одновременное его сжатие до размеров (0,0), а по достижении минимальных размеров – расширение до исходных (150,150) с шагом 1. 13. Обеспечить возможность изменения размеров формы.

Текст программы:

Главная форма проекта:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Drawing.Drawing2D;

namespace Компьютерная_графика__7

{

public partial class Form1 : Form

{

Graphics g;

public LinearGradientBrush lr;

int x = 1;

int t = 0;

Matrix m = new Matrix();

public Form1()

{

InitializeComponent();

g = this.CreateGraphics();

}

private void параметрыГрадиентаToolStripMenuItem_Click(object sender, EventArgs e)

{

Form f2 = new Form2();

f2.Show();

}

private void button1_Click(object sender, EventArgs e)

{

switch (t)

{

case 0:

timer1.Start();

t = 1;

break;

case 1:

timer1.Stop();

t = 0;

break;

case 2:

timer2.Stop();

t = 3;

break;

case 3:

timer2.Start();

t = 2;

break;

}

}

private void timer1_Tick(object sender, EventArgs e)

{

g.Clear(BackColor);

Rectangle r = new Rectangle(100, 100, 150 - x, 150 - x);

m.RotateAt(1, new PointF(160, 160));

g.Transform = m;

g.FillRectangle(lr, r);

x++;

if (x == 150)

{

timer1.Stop();

timer2.Start();

x = 1;

t = 2;

}

}

private void timer2_Tick(object sender, EventArgs e)

{

g.Clear(BackColor);

Rectangle r = new Rectangle(100, 100, 0+x, 0+x);

m.RotateAt(1, new PointF(160, 160));

g.Transform = m;

g.FillRectangle(lr, r);

x++;

{

if (x == 150)

{

timer2.Stop();

timer1.Start();

x = 1;

t = 1;

}

}

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

e.Graphics.Transform = m;

}

}

}

Форма Параметры градиента:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Drawing.Drawing2D;

namespace Компьютерная_графика__7

{

public partial class Form2 : Form

{

Form1 frm = (Form1)ActiveForm;

Graphics g;

SolidBrush b1 = new SolidBrush(Color.Red);

SolidBrush b2 = new SolidBrush(Color.Red);

Rectangle rc = new Rectangle(10,10,10,10);

LinearGradientBrush lb;

public Form2()

{

InitializeComponent();

g = this.CreateGraphics();

}

private void button1_Click(object sender, EventArgs e)

{

colorDialog1.ShowDialog();

b1.Color = colorDialog1.Color;

Rectangle r = new Rectangle(50, 40, 50, 50);

g.FillRectangle(b1, r);

}

private void button2_Click(object sender, EventArgs e)

{

colorDialog1.ShowDialog();

b2.Color = colorDialog1.Color;

Rectangle r = new Rectangle(150, 40, 50, 50);

g.FillRectangle(b2, r);

}

private void button4_Click(object sender, EventArgs e)

{

this.Close();

}

private void button3_Click(object sender, EventArgs e)

{

frm.lr = lb;

this.Close();

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

switch(comboBox1.SelectedIndex)

{

case 0:

lb = new LinearGradientBrush(rc, b1.Color, b2.Color, LinearGradientMode.BackwardDiagonal);

break;

case 1:

lb = new LinearGradientBrush(rc, b1.Color, b2.Color, LinearGradientMode.ForwardDiagonal);

break;

case 2:

lb = new LinearGradientBrush(rc, b1.Color, b2.Color, LinearGradientMode.Horizontal);

break;

case 3:

lb = new LinearGradientBrush(rc, b1.Color, b2.Color, LinearGradientMode.Vertical);

break;

}

}

}

}

Контрольный пример:

Образец главной формы проекта:

Форма Параметры градиента:

Результат работы таймера: