Training
Module
Get started with classes and objects in C# - Training
Learn how to create classes and instantiate objects that expose encapsulated field data by using class definitions, constructors, and the 'new' operator.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Before you can draw lines and shapes, render text, or display and manipulate images with GDI+, you need to create a Graphics object. The Graphics object represents a GDI+ drawing surface, and is the object that is used to create graphical images.
There are two steps in working with graphics:
Creating a Graphics object.
Using the Graphics object to draw lines and shapes, render text, or display and manipulate images.
A graphics object can be created in a variety of ways.
Receive a reference to a graphics object as part of the PaintEventArgs in the Paint event of a form or control. This is usually how you obtain a reference to a graphics object when creating painting code for a control. Similarly, you can also obtain a graphics object as a property of the PrintPageEventArgs when handling the PrintPage event for a PrintDocument.
-or-
Call the CreateGraphics method of a control or form to obtain a reference to a Graphics object that represents the drawing surface of that control or form. Use this method if you want to draw on a form or control that already exists.
-or-
Create a Graphics object from any object that inherits from Image. This approach is useful when you want to alter an already existing image.
The following sections give details about each of these processes.
When programming the PaintEventHandler for controls or the PrintPage for a PrintDocument, a graphics object is provided as one of the properties of PaintEventArgs or PrintPageEventArgs.
Declare the Graphics object.
Assign the variable to refer to the Graphics object passed as part of the PaintEventArgs.
Insert code to paint the form or control.
The following example shows how to reference a Graphics object from the PaintEventArgs in the Paint event:
Private Sub Form1_Paint(sender As Object, pe As PaintEventArgs) Handles _
MyBase.Paint
' Declares the Graphics object and sets it to the Graphics object
' supplied in the PaintEventArgs.
Dim g As Graphics = pe.Graphics
' Insert code to paint the form here.
End Sub
private void Form1_Paint(object sender,
System.Windows.Forms.PaintEventArgs pe)
{
// Declares the Graphics object and sets it to the Graphics object
// supplied in the PaintEventArgs.
Graphics g = pe.Graphics;
// Insert code to paint the form here.
}
private:
void Form1_Paint(System::Object ^ sender,
System::Windows::Forms::PaintEventArgs ^ pe)
{
// Declares the Graphics object and sets it to the Graphics object
// supplied in the PaintEventArgs.
Graphics ^ g = pe->Graphics;
// Insert code to paint the form here.
}
You can also use the CreateGraphics method of a control or form to obtain a reference to a Graphics object that represents the drawing surface of that control or form.
Call the CreateGraphics method of the form or control upon which you want to render graphics.
Dim g as Graphics
' Sets g to a Graphics object representing the drawing surface of the
' control or form g is a member of.
g = Me.CreateGraphics
Graphics g;
// Sets g to a graphics object representing the drawing surface of the
// control or form g is a member of.
g = this.CreateGraphics();
Graphics ^ g;
// Sets g to a graphics object representing the drawing surface of the
// control or form g is a member of.
g = this->CreateGraphics();
Additionally, you can create a graphics object from any object that derives from the Image class.
Call the Graphics.FromImage method, supplying the name of the Image variable from which you want to create a Graphics object.
The following example shows how to use a Bitmap object:
Dim myBitmap as New Bitmap("C:\Documents and Settings\Joe\Pics\myPic.bmp")
Dim g as Graphics = Graphics.FromImage(myBitmap)
Bitmap myBitmap = new Bitmap(@"C:\Documents and
Settings\Joe\Pics\myPic.bmp");
Graphics g = Graphics.FromImage(myBitmap);
Bitmap ^ myBitmap = gcnew
Bitmap("D:\\Documents and Settings\\Joe\\Pics\\myPic.bmp");
Graphics ^ g = Graphics::FromImage(myBitmap);
Note
You can only create Graphics objects from nonindexed .bmp files, such as 16-bit, 24-bit, and 32-bit .bmp files. Each pixel of nonindexed .bmp files holds a color, in contrast to pixels of indexed .bmp files, which hold an index to a color table.
After it is created, a Graphics object may be used to draw lines and shapes, render text, or display and manipulate images. The principal objects that are used with the Graphics object are:
The Pen class—Used for drawing lines, outlining shapes, or rendering other geometric representations.
The Brush class—Used for filling areas of graphics, such as filled shapes, images, or text.
The Font class—Provides a description of what shapes to use when rendering text.
The Color structure—Represents the different colors to display.
Work with the appropriate object listed above to draw what you need.
For more information, see the following topics:
To render | See |
---|---|
Lines | How to: Draw a Line on a Windows Form |
Shapes | How to: Draw an Outlined Shape |
Text | How to: Draw Text on a Windows Form |
Images | How to: Render Images with GDI+ |
.NET Desktop feedback feedback
.NET Desktop feedback is an open source project. Select a link to provide feedback:
Training
Module
Get started with classes and objects in C# - Training
Learn how to create classes and instantiate objects that expose encapsulated field data by using class definitions, constructors, and the 'new' operator.