Разделы презентаций


С #. Windows Applications

Содержание

План лекцииТипы проектовОрганизация интерфейсаФорма и элементы управленияВзаимодействие формРисование в формеКласс GraphicsМетоды класса GraphicsПример проекта

Слайды и текст этой презентации

Слайд 1С#. Windows Applications

С#. Windows Applications

Слайд 2План лекции
Типы проектов
Организация интерфейса
Форма и элементы управления
Взаимодействие форм
Рисование в форме
Класс

Graphics
Методы класса Graphics
Пример проекта

План лекцииТипы проектовОрганизация интерфейсаФорма и элементы управленияВзаимодействие формРисование в формеКласс GraphicsМетоды класса GraphicsПример проекта

Слайд 4Передача информации между формами
Представим себе, что несколько форм должны работать

с объектом класса Books. Пусть в главной форме такой объект

объявлен:

public Books myBooks;

В конструкторе главной формы такой объект создается:

myBooks = new Books(max_books);

где max_books - заданная константа. Пусть еще в главной форме объявлена форма - объект класса NewBook:

public NewBook form2;

Передача информации между формами	Представим себе, что несколько форм должны работать с объектом класса Books. Пусть в главной

Слайд 5Передача информации между формами
При создании объекта form2 его конструктору передается

ссылка на главную форму:

form2 = new NewBook(this);

Класс NewBook содержит поля:

private

Form1 mainform;
private Books books;

а его конструктор следующий код:

mainform = form;
books = mainform.myBooks;

Передача информации между формами	При создании объекта form2 его конструктору передается ссылка на главную форму:	form2 = new NewBook(this);	Класс

Слайд 6Передача информации между формами
Теперь объекту form2 доступны ранее созданные объекты,

задающие книги и главную форму, так что в обработчике события

Closed, возникающего при закрытии формы, можно задать код:

private void NewBook_Closed(object sender, System.EventArgs e)
{
mainform.Show();
}

открывающий главную форму.
Передача информации между формами	Теперь объекту form2 доступны ранее созданные объекты, задающие книги и главную форму, так что

Слайд 7Класс Graphics
При рисовании в формах можно объявить в форме поле,

описывающее объект класса Graphics:
Graphics graph;
а в конструкторе формы произвести связывание

с реальным объектом:
graph = CreateGraphics();
Затем всюду в программе, где нужно работать с графикой, используется глобальный для формы объект graph и его методы. Есть другой способ получения этого объекта - обработчики некоторых событий получают объект класса Graphics среди передаваемых им аргументов. Например, в обработчике события Paint, занимающегося перерисовкой, этот объект можно получить так:
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
Graphics gr = e.Graphics;
//перерисовка, использующая методы объекта gr
}
Класс Graphics	При рисовании в формах можно объявить в форме поле, описывающее объект класса Graphics:Graphics graph;а в конструкторе

Слайд 8Методы класса Graphics
Для рисования важны три группы методов:
DrawString;
Draw - DrawEllipse,

DrawLine, DrawArc и др.;
Fill - FillEllipse, FillPie, FillRectangle и др.;

Методы класса GraphicsДля рисования важны три группы методов:DrawString;Draw - DrawEllipse, DrawLine, DrawArc и др.;Fill - FillEllipse, FillPie,

Слайд 9Класс Pen. Класс Brush
Класс Brush является абстрактным классом, так что

создавать кисти этого класса нельзя, но можно создавать кисти классов-потомков

Brush.
Таких классов пять - они задают кисть:

SolidBrush - для сплошной закраски области заданным цветом;
TextureBrush - для закраски области заданной картинкой (image);
HatchBrush - для закраски области предопределенным узором;
LinearGradientBrush - для сплошной закраски с переходом от одного цвета к другому, где изменение оттенков задается линейным градиентом;
PathGradientBrush - для сплошной закраски с переходом от одного цвета к другому, где изменение оттенков задается более сложным путем.

Первые два класса кистей находятся в пространстве имен System.Drawing, остальные - в System.Drawing.Drawing2D.

Класс Pen. Класс Brush	Класс Brush является абстрактным классом, так что создавать кисти этого класса нельзя, но можно

Слайд 10Пример проекта
Построим проект для рисования в формах. В одной из

форм будем рисовать пером, в другом - кистями различного типа.

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

Слайд 11Пример проекта
Построим проект для рисования в формах. В одной из

форм будем рисовать пером, в другом - кистями различного типа.

Главную форму сделаем простой кнопочной формой. Вот как она выглядит.









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

Слайд 12Пример. Кривые Безье. Окно формы

Пример. Кривые Безье. Окно формы

Слайд 13Пример. Паутина Безье
//fields
Point center;
Point[] points = new Point[10];
Pen pen;
Graphics graph;
int

count;
}


Пример. Паутина Безье//fields		Point center;		Point[] points = new Point[10];		Pen pen;		Graphics graph;		int count;	}

Слайд 14Пример. Паутина Безье
void MyInit()
{
int cx = ClientSize.Width;
int cy = ClientSize.Height;
points[0]

= new Point(0,0);
points[1] = new Point(cx/2,0);
points[2] = new Point(cx,0);
points[3] =

new Point(0,cy/2);
points[4] = new Point(cx,cy/2);
points[5] = new Point(0,cy);
points[6] = new Point(cx/2,cy);
points[7] = new Point(cx,cy);
points[8] = new Point(0,0);
points[9] = new Point(cx/2,0);
graph = this.CreateGraphics();
center = new Point(cx/2,cy/2);
count =1;
}

Пример. Паутина Безьеvoid MyInit(){	int cx = ClientSize.Width;	int cy = ClientSize.Height;	points[0] = new Point(0,0);	points[1] = new Point(cx/2,0);	points[2] =

Слайд 15Пример. Паутина Безье
void DrawWeb()
{
for (int i = 0; i

Пример. Паутина Безьеvoid DrawWeb(){	for (int i = 0; i

Слайд 16Пример. Паутина Безье
private void BezierWeb_MouseMove(object sender,
System.Windows.Forms.MouseEventArgs e)
{
pen = SystemPens.Control;
DrawWeb();
center.X =

e.X; center.Y = e.Y;
//pen = new Pen(Color.Aquamarine);
pen = SystemPens.ControlText;
DrawWeb();
}

Пример. Паутина Безьеprivate void BezierWeb_MouseMove(object sender,	System.Windows.Forms.MouseEventArgs e){	pen = SystemPens.Control;	DrawWeb();	center.X = e.X; center.Y = e.Y;	//pen = new Pen(Color.Aquamarine);				pen

Слайд 17Пример. Событие Paint
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
pen = SystemPens.ControlText;
DrawWeb();
//Debug.WriteLine(count++);
}

Пример. Событие Paintprotected override void OnPaint(System.Windows.Forms.PaintEventArgs e){	pen = SystemPens.ControlText;			DrawWeb();	//Debug.WriteLine(count++);}

Слайд 18Пример. Кривые Безье. Окно формы

Пример. Кривые Безье. Окно формы

Слайд 19Пример. Рисование кистью

Пример. Рисование кистью

Слайд 20Пример. Рисование кистью
//fields
int cx,cy;
Graphics graph;
Brush brush;
Color color;
Random rnd;

Пример. Рисование кистью//fields	int cx,cy;	Graphics graph;	Brush brush;	Color color;	Random rnd;

Слайд 21Пример. Рисование кистью
void MyInit()
{
cx = ClientSize.Width;
cy = ClientSize.Height;
graph = CreateGraphics();
rnd

= new Random();
}

Пример. Рисование кистьюvoid MyInit()	{		cx = ClientSize.Width;		cy = ClientSize.Height;		graph = CreateGraphics();		rnd = new Random();	}

Слайд 22Пример. Рисование кистью
void DrawShapes()
{
for(int i=0; i

желтый, голубой
int numcolor = rnd.Next(3);
switch (numcolor)
{
case 0:
color = Color.Blue; break;
case

1:
color = Color.Yellow; break;
case 2:
color = Color.Red; break;
}

Пример. Рисование кистьюvoid DrawShapes()	{		for(int i=0; i

Слайд 23Пример. Рисование кистью

//градиентной кистью рисуется эллипс,
//местоположение случайно
Point top = new

Point(rnd.Next(cx),
rnd.Next(cy));
Size sz = new Size(rnd.Next(cx-top.X),

rnd.Next(cy-top.Y));
Rectangle rct = new Rectangle(top, sz);
Point bottom = top + sz;
brush = new LinearGradientBrush(top, bottom,
Color.White,color);
graph.FillEllipse(brush,rct);
Пример. Рисование кистью						//градиентной кистью рисуется эллипс,			//местоположение случайно			Point top = new Point(rnd.Next(cx), 						 rnd.Next(cy));			Size sz = new Size(rnd.Next(cx-top.X),

Слайд 24Пример. Рисование кистью

//сплошной кистью рисуется сектор,
//местоположение случайно
top = new Point(rnd.Next(cx),

rnd.Next(cy));
sz = new Size(rnd.Next(cx-top.X),
rnd.Next(cy-top.Y));
rct = new Rectangle(top, sz);
brush =

new SolidBrush(color);
graph.FillPie(brush,rct,30f,60f);
Пример. Рисование кистью						//сплошной кистью рисуется сектор,			//местоположение случайно			top = new Point(rnd.Next(cx), rnd.Next(cy));			sz = new Size(rnd.Next(cx-top.X),					 rnd.Next(cy-top.Y));			rct = new

Слайд 25Пример. Рисование кистью

//узорной кистью рисуется прямоугольник,
//местоположение случайно
top = new Point(rnd.Next(cx),

rnd.Next(cy));
sz = new Size(rnd.Next(cx-top.X),
rnd.Next(cy-top.Y));
rct = new Rectangle(top, sz);
HatchStyle hs

= (HatchStyle)rnd.Next(52);
brush = new HatchBrush(hs,Color.White,
Color.Black);
graph.FillRectangle(brush,rct);

}
}
Пример. Рисование кистью						//узорной кистью рисуется прямоугольник,			//местоположение случайно			top = new Point(rnd.Next(cx), rnd.Next(cy));			sz = new Size(rnd.Next(cx-top.X),					 rnd.Next(cy-top.Y));			rct = new

Слайд 26Пример. Рисование кистью

Вызов метода DrawShapes, как уже говорилось, встроим в

обработчик события Click формы RandomShapes:

private void RandomShapes_Click(object sender, System.EventArgs e)
{
DrawShapes();
}

Пример. Рисование кистью			Вызов метода DrawShapes, как уже говорилось, встроим в обработчик события Click формы RandomShapes:private void RandomShapes_Click(object

Слайд 27Пример. Рисование кистью

Пример. Рисование кистью

Слайд 28Вопросы
? ? ?

Вопросы? ? ?

Слайд 29План лекции
Типы проектов
Организация интерфейса
Форма и элементы управления
Взаимодействие форм
Образцы форм
Работа

со списками
Наследование форм
Организация меню в формах
Создание инструментальной панели с командными

кнопками
Рисование в форме
Класс Graphics
Методы класса Graphics
Пример проекта

План лекцииТипы проектовОрганизация интерфейсаФорма и элементы управленияВзаимодействие формОбразцы форм Работа со спискамиНаследование формОрганизация меню в формахСоздание инструментальной

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика