Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C# - все презентации / 04_C#_Windows Applications.ppt
Скачиваний:
54
Добавлен:
29.03.2015
Размер:
390.66 Кб
Скачать

С#. Windows Applications

04. C#. Windows Applications

План лекции

Типы проектов

Организация интерфейса

Форма и элементы управления

Взаимодействие форм

Рисование в форме

Класс Graphics

Методы класса Graphics

Пример проекта

04. C#. Windows Applications

2

04. C#. Windows Applications

3

Передача информации между

формами

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

public Books myBooks;

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

myBooks = new Books(max_books);

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

public NewBook form2;

04. C#. Windows Applications

4

Передача информации между

формами

При создании объекта form2 его конструктору передается ссылка на главную форму:

form2 = new NewBook(this);

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

private Form1 mainform; private Books books;

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

mainform = form;

books = mainform.myBooks;

04. C#. Windows Applications

5

Передача информации между

формами

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

private void NewBook_Closed(object sender, System.EventArgs e)

{

mainform.Show();

}

открывающий главную форму.

04. C#. Windows Applications

6

Класс Graphics

При рисовании в формах можно объявить в форме поле, описывающее объект класса Graphics:

Graphics graph;

а в конструкторе формы произвести связывание с реальным объектом: graph = CreateGraphics();

Затем всюду в программе, где нужно работать с графикой, используется глобальный для формы объект graph и его методы. Есть другой способ получения этого объекта - обработчики некоторых событий получают объект класса Graphics среди передаваемых им аргументов. Например, в обработчике события Paint, занимающегося перерисовкой, этот объект можно получить так:

protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)

{

Graphics gr = e.Graphics;

//перерисовка, использующая методы объекта gr

}

04. C#. Windows Applications

7

Методы класса Graphics

Для рисования важны три группы методов:

DrawString;

Draw - DrawEllipse, DrawLine, DrawArc и др.;

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

04. C#. Windows Applications

8

Класс Pen. Класс Brush

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

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

SolidBrush - для сплошной закраски области заданным цветом;

TextureBrush - для закраски области заданной картинкой (image);

HatchBrush - для закраски области предопределенным узором;

LinearGradientBrush - для сплошной закраски с переходом от одного цвета к другому, где изменение оттенков задается линейным градиентом;

PathGradientBrush - для сплошной закраски с переходом от одного цвета к другому, где изменение оттенков задается более сложным путем.

Первые два класса кистей находятся в пространстве имен

System.Drawing, остальные - в System.Drawing.Drawing2D.

04. C#. Windows Applications

9

Пример проекта

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

04. C#. Windows Applications

10

Пример проекта

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

Выбор соответствующей командной кнопки

04. C#. Windows Applications

11