Drawing Graphics in Visual Basic

Revision as of 14:30, 5 May 2016 by Neil (Talk | contribs) (Text replacement - "<table border="0" cellspacing="0" width="100%">" to "<table border="0" cellspacing="0">")

Revision as of 14:30, 5 May 2016 by Neil (Talk | contribs) (Text replacement - "<table border="0" cellspacing="0" width="100%">" to "<table border="0" cellspacing="0">")

PreviousTable of Contents
Working with Directories in Visual Basic


Purchase and download the fully updated Visual Basic 2010 edition of this eBook in PDF and ePub for only $9.99


In the chapter of Visual Basic Essentials we will cover the drawing of 2D graphics on controls using Visual Basic. In this tutorial we will create a project containing a blank form and work step by step through drawing on the form.

Start Visual Studio and create a new Windows Application project.

Drawing Filled Shapes in Visual Basic

Begin by double clicking on the new Form in the Visual Studio project to access the event procedure code for the form control. From the pull-down list, select the Paint event as shown below (if you are using Visual Studio 2008 the events are accessed by clicking on the lightning bolt above the properties list):

Vb graphics paint event.jpg

Once selected, Visual Studio will display the Paint event subroutine. The next task is to create a paintbrush with which to paint:

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) 
          Handles Me.Paint

        Dim blueBrush As New Drawing.SolidBrush(Color.Blue)

    End Sub

In the above code we have created a new SolidBrush drawing object using color blue and assigned it to variable blueBrush. The next step is to use the brush to draw a shape:

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) 
                  Handles Me.Paint
        Dim blueBrush As New Drawing.SolidBrush(Color.Blue)

        e.Graphics.FillRectangle(blueBrush, 20, 30, 100, 100)
    End Sub

The above example tells the Graphics object to draw a rectangle at coordinates x=20, y=30 of height and width equal to 100. Press 'F5 to build and run the application which should appear as follows:

Vb brush rectangle.jpg

Visual Basic provides a wide range of brush effects. A gradient effect, for example, can be achieved using the LinearGradientBrush:

        Dim myRectangle As New Drawing.Rectangle(10, 10, 100, 100)

        Dim myGradient As New Drawing2D.LinearGradientBrush(myRectangle, Color.Red, Color.Blue, 50)
        e.Graphics.FillRectangle(myGradient, 20, 30, 100, 100)

The above code produces the following output:

Vb brush gradient.jpg

Drawing in Visual Basic Using a Pen

The Visual Basic Pen object can be used to draw lines between specific points and of specific widths as follows:

Dim greenPen As New Drawing.Pen(Color.Green, 10)

e.Graphics.DrawLine(greenPen, 20, 30, 100, 100)

The above example draws a line between the coordinates provided using a width of 10 pixels as follows:

Vb pen drawline.jpg


Drawing Shapes in Visual Basic

The following code excerpts demonstrate how to draw various shapes in Visual Basic:

Drawing a Ellipse

        Dim greenPen As New Drawing.Pen(Color.Green, 10)

        e.Graphics.DrawEllipse(greenPen, 10, 10, 100, 200)

Vb pen ellipse.jpg

Drawing a Rectangle

        Dim greenPen As New Drawing.Pen(Color.Green, 10)

        e.Graphics.DrawRectangle(greenPen, 10, 10, 100, 200)

Vb draw rectange.jpg

Drawing Text in Visual Basic

Text is drawn in Visual Basic using the DrawString() method. This takes the text, font object, brush and coordinates as parameters.

First a font object needs to be defined. This involves specifying the font type and size:

Dim fontObj As Font
fontObj = new System.Drawing.Font("Times", 25, FontStyle.Bold)

A number of brush types are preconfigured for your use in Visual Basic. In this example we will use the System.Drawing.Brushes.Chocolate brush:

        Dim fontObj As Font
        fontObj = New System.Drawing.Font("Times", 25, FontStyle.Bold)

        e.Graphics.DrawString("Techotopia Rocks", fontObj, Brushes.Chocolate, 10, 10)

The above code draws the following text:

Vb draw text.jpg

Clearing a Drawing Area

A drawing area may be cleared using any color via the Visual Basic Graphics object Clear() method as follows:

e.Graphics.Clear(Color.White)

Summary

This chapter is intended to provide a basic grounding in Graphics drawing in Visual Basic. The area of graphics drawing is vast and it is impossible to cover everything in a single chapter. Hopefully enough has been covered hear to give you the confidence to experiment and learn more.


Purchase and download the fully updated Visual Basic 2010 edition of this eBook in PDF and ePub for only $9.99