Select Method carefully in GDI+ using VB.NET

In this article you will learn how to Select Method carefully in GDI+.
  • 3215

Drawing lines and drawing rectangles are probably the most common operations. If you are drawing more than one line or rectangle using the same colors, your should use the DrawLine/DrawLines and DrawRectangle/DrawRectangles methods, respectively. For example, Listing 13.13 draws three rectangles using the same brush.

Figure2013_5.gif

FIGURE 13.5: The same result from two different drawing methods

LISTING 13.13: Using DrawRectangle to draw rectangles

Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms

Public Class Form1

    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim g As Graphics = e.Graphics
        'Create a black pen
        Dim blackPen As New Pen(Color.Black, 2)
        'Create a rectangle
        Dim x As Single = 5.0F, y As Single = 5.0F
        Dim width As Single = 100.0F
        Dim height As Single = 200.0F
        Dim rect As New Rectangle(20, 20, 80, 40)
        'Draw rectangles
        g.DrawRectangle(blackPen, x, y, width, height)
        g.DrawRectangle(blackPen, 60, 80, 140, 50)
        g.DrawRectangle(blackPen, rect)
        'dispose of objects
        blackPen.Dispose()
    End Sub
End Class

Figure2013_6.gif

FIGURE 13.6: Using DrawRectangle to draw rectangles

Figure 13.6 shows the output from Listing 13.13. Three rectangles have been drawn.

You can replace the code in Listing 13.13 with Listing 13.14, which uses DrawRectangles to draw the
same number of rectangles. Now we use an array of rectangles.

LISTING 13.14: Using DrawRectangles to draw rectangles

Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms

Public Class Form1

    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    Dim g As Graphics = e.Graphics
    'Create a black pen
     Dim backPen As New Pen(Color.Black, 2)
     Dim rectArray As RectangleF() = {New RectangleF(5F, 5F, 100F, 200F), New RectangleF(20F, 20F, 80F, 40F), New RectangleF(60F, 80F,  140F, 50F)}
     g.DrawRectangle(blackPen, rectArray)
     'dispose of objects
     blackPen.Dispose()
End Class

If we run this code, the output looks exactly like Figure 13.6.

Avoid Using Frequently Called Events

It is always good practice to write minimal code on events that are called frequently because that code will be executed whenever the event is called. The Paint event is specifically designed for painting purposes and is called when redrawing is necessary. It is always advisable to write your painting (or redrawing) â€"related code for this event only. Writing code for other events, such as mouse-move or keyboard events may cause serious problems or may not invalidate areas as necessary.

Categories

More Articles

© 2019 DotNetHeaven. All rights reserved.