Простейший вывод
Рассмотрим очень простой пример графического вывода. Следующая программа выводит растровый файл sample.bmp (находящийся в каталоге \bin решения) в левом верхнем углу формы:
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
Dim g As Graphics
g = e.Graphics()
g.Draw!mage(New Bitmap("sample.bmp"). 0. 0)
g.Dispose()
End Sub
Обратите внимание на вызов Dispose в строке, выделенной жирным шрифтом. Поскольку сборщик мусора не освобождает графические контексты, привыкайте делать это самостоятельно в конце процедуры Paint.
Напоминаем: если объект поддерживает метод Dispose, этот метод следует вызвать по завершении работы с объектом.
Следующий этап — рисование линий, прямоугольников и других фигур. Перед операциями такого рода следует получить объект пера, который является экземпляром класса System.Drawing.Pen. Самый распространенный конструктор класса Реп имеет следующий синтаксис:
Public Sub New(Color.Single)
Первый параметр определяет цвет пера (и входит в перечисляемый тип System. DrawingColor), а второй определяет толщину пера (другие конструкторы также позволяют задать кисть для заполнения внутренней части объекта). Например, чтобы нарисовать прямоугольник, вы определяете его размеры и вызываете g. DrawRectangle. Результат выполнения следующей программы показан на рис. 8.22:
Protected Overrides Sub OnPaint(ByVa1 e As PaintEventArgs)
MyBase.OnPaint(e)
Dim g As Graphics
g = e.Graphics()
Dim myPen As New PerKColor,Purple. 6)
Dim aRectangle As New Rectangle(Me.ClientRectangle.Width \4,_
Me.ClientRectangle.Height \ 4. . Me.ClientRectangle.Height \2,_
Me.ClientRectangle.Width \ 2))
g.DrawRectangle(myPen,aRectangle)
g.Dispose()
End Sub
Рис. 8.22. Результат вызова DrawRectangle: прямоугольник в рамке толщиной 6 пикселов