Геометрические фигуры рисуются с помощью специальных методов объекта Graphics. Следует отметить, что все изображения, созданные с помощью этих методов, являются непостоянными, и при любых действиях с объектом (изменении размера формы, переключении в другую форму, закрытии формы и др.) данные изображения теряются.
За этой ситуацией необходимо следить, и, при необходимости, повторять коды рисования в обработчиках событий Resize, GotFocus и других. Однако, если изображение формируется динамически, то данный код может быть очень сложным. Чтобы изображение выводилось на форме при её вызове на экран, соответствующий код необходимо записывать в обработчик события Paint, а не Load.
Изображение, нанесённое на форму, сохранить нельзя.
Графические методы, используемые для рисования, можно разделить на две группы: методы для рисования контуров геометрических фигур и для рисования заполненных фигур. Имена первой группы методов начинаются с префикса Draw, имена второй группы методов – с префикса Fill. Для некоторых методов из первой группы не существует эквивалентов второй группы, например, нельзя заполнить линию или незамкнутую кривую.
Для заполнения фигур используется объект Brush, для вычерчивания их контуров –объект Pen.
Создаётся с помощью метода DrawLine по координатам двух точек. Аргументами являются объект Pen и либо 4 координаты точек, заданные явно, либо два объекта Point, например:
Visual Basic .Net:
Dim g As Graphics
g = Me.CreateGraphics
Dim redpen As Pen
redpen = New Pen(Color.Red, 3)
g.DrawLine(redpen, 10, 10, 400, 400)
Visual C#:
Graphics g;
g = this.CreateGraphics();
Pen redpen;
redpen = new Pen(Color.Red, 3);
g.DrawLine(redpen, 10, 10, 400, 400);
или:
Visual Basic .Net:
Dim g As Graphics
g = Me.CreateGraphics
Dim redpen As Pen
redpen = New Pen(Color.Red, 3)
Dim p1, p2 As Point
p1 = New Point(10, 10)
p2 = New Point(400, 400)
g.DrawLine(redpen, p1, p2)
Visual C#:
Graphics g;
g = this.CreateGraphics();
Pen redpen;
redpen = new Pen(Color.Red, 3);
Point p1, p2;
p1 = new Point(10, 10);
p2 = new Point(400, 400);
g.DrawLine(redpen,p1,p2);
Можно нарисовать несколько линий за одинраз (разомкнутую ломанную лиию) с помощью метода DrawLines. Для этого создаётся массив объектов Point, который передаётся в качестве аргумента данного метода. При этом первая линия соединяет первую и вторую точки, вторая – вторую и третью и т.д., например:
Visual Basic .Net:
Dim points As Point() = {New Point(10, 10), New Point(10, 100), New Point(200, 50), New Point(250, 300)}
g.DrawLines(redpen, points)
Visual C#:
Point[] points={new Point(10,10), new Point(10,100), new Point(200,50), new Point(250,300)};