Creazione di un oggetto Graphics

Per disegnare elementi grafici in una qualsiasi periferica di visualizzazione è necessario un oggetto Graphics. Un oggetto Graphics è associato a una superficie di disegno, normalmente l'area client di un oggetto Form. Utilizzare una delle tecniche riportate di seguito per ottenere un oggetto Graphics da disegnare in un Form.

Utilizzo del metodo CreateGraphics

Utilizzare il metodo Form.CreateGraphics per creare un oggetto Graphics che crei a sua volta un oggetto Form.

Nell'esempio che segue si crea una sottoclasse della classe Form, si chiama il relativo metodo CreateGraphics e si utilizza l'oggetto Graphics risultante per disegnare un rettangolo nell'area client del form:

Imports System
Imports System.Windows.Forms
Imports System.Drawing

'Create a Class that inherits from System.Windows.Forms.Form. 
Class myForm 
   Inherits Form 
   
   'Override myForm's OnClick event. 
   Protected Overrides Sub OnClick(ByVal e As EventArgs) 

      'Use the CreateGraphics method to create a Graphics object. 
       Dim formGraphics As Graphics
       formGraphics = Me.CreateGraphics

      'Create a red brush. 
      Dim redBrush As new SolidBrush(Color.Red)

      'Draw a rectangle on the form. 
      formGraphics.FillRectangle(redBrush, 0, 0, 100, 100)
   End Sub 'OnClick

   Public Shared Sub Main() 
      Application.Run(new myForm())
   End Sub 'Main

End Class

[C#]
using System;
using System.Windows.Forms;
using System.Drawing;

//Create a Class that inherits from System.Windows.Forms.Form. 
class myForm : Form {
   
   //Override myForm's OnClick event. 
  protected override void OnClick(EventArgs e) {

      //Use the CreateGraphics method to create a Graphics object. 
      Graphics formGraphics = this.CreateGraphics();

      //Create a red brush. 
      SolidBrush redBrush = new SolidBrush(Color.Red);

      //Draw a rectangle on the form. 
      formGraphics.FillRectangle(redBrush, 0, 0, 100, 100);
   }

   public static void Main() {
      Application.Run(new myForm());
   }
}

Esecuzione dell'override del gestore eventi OnPaint

Il metodo OnPaint di una classe Form riceve un oggetto PaintEventArgs come parametro. Uno dei membri di questo oggetto è un oggetto Graphics associato al form.

Nell'esempio che segue si sottopone a override il metodo OnPaint di una classe Form e si utilizza l'oggetto Graphics dal parametro PaintEventArgs risultante per disegnare un rettangolo nell'area client del form:

Imports System.Windows.Forms
Imports System.Drawing

'Create a Class that inherits from System.Windows.Forms.Form. 
Class myForm 
   Inherits Form 
   
   'Override myForm's OnPaint event handler. 
   Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) 

      'Use the Graphics object from the PaintEventArgs object. 
       Dim formGraphics As Graphics
       formGraphics = e.Graphics

      'Create a red brush. 
      Dim redBrush As new SolidBrush(Color.Red)

      'Draw a rectangle on the form. 
      formGraphics.FillRectangle(redBrush, 0, 0, 100, 100)
   End Sub 'OnClick

   Public Shared Sub Main() 
      Application.Run(new myForm())
   End Sub 'Main

End Class

[C#]
using System;
using System.Windows.Forms;
using System.Drawing;

//Create a Class that inherits from System.Windows.Forms.Form. 
class myForm : Form {
   
   //Override myForm's OnPaint event. 
  protected override void OnPaint(PaintEventArgs e) {

      //Get the Graphics object from the PaintEventArgs object. 
      Graphics formGraphics = e.CreateGraphics();

      //Create a red brush. 
      SolidBrush redBrush = new SolidBrush(Color.Red);

      //Draw a rectangle on the form. 
      formGraphics.FillRectangle(redBrush, 0, 0, 100, 100);
   }

   public static void Main() {
      Application.Run(new myForm());
   }
}