Простейший вывод
Рассмотрим очень простой пример графического вывода. Следующая программа выводит растровый файл 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 пикселов