Partager via


Dessin d'une ligne

Pour dessiner une ligne dans GDI+, vous avez besoin d'un objet Graphics et d'un objet Pen. L'objet Graphics fournit la méthode DrawLine et l'objet Pen contient des attributs de la ligne, tels que la couleur et la largeur. L'objet Pen est passé comme argument à la méthode DrawLine.

L'exemple suivant dessine une ligne de (0, 0) à (100, 100). Il est composé de la classe LineForm, qui hérite de la classe Form du .NET Framework. La classe Form encapsule le code nécessaire pour créer et afficher une fenêtre.

La classe LineForm est composée d'une méthode OnPaint substituée et d'une méthode Main. La méthode Main appelle la méthode Run de l'objet Application pour créer une instance de l'objet LineForm et l'afficher sous forme de fenêtre. Le code GDI+ qui dessine la ligne à l'écran est contenu dans la méthode OnPaint.

La méthode OnPaint reçoit un objet PaintEventArgs du système lorsque la méthode est appelée en réponse à un événement Paint (un événement Paint se produit lorsque le formulaire doit être redessiné ; par exemple, lorsque le formulaire est déplacé ou redimensionné). L'un des membres de l'objet PaintEventArgs est un objet Graphics associé au formulaire. La méthode OnPaint assigne cet objet Graphics à g.

La méthode OnPaint crée ensuite un objet Pen. L'argument passé au constructeur Pen est la couleur définie par le système Color.Black.

La méthode OnPaint crée ensuite deux objets Point, qui représentent les extrémités de la ligne à dessiner.

Enfin, la méthode OnPaint appelle la méthode Graphics.DrawLine pour dessiner une ligne à l'écran. Les arguments passés à la méthode DrawLine sont l'objet Pen et les deux objets Point.

Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Drawing.Imaging
Imports System.Drawing.Text

Public Class LineForm
   Inherits Form

   Protected Overrides Sub OnPaint(ByVal e as PaintEventArgs)
      Dim g As Graphics
      g = e.Graphics
      Dim blackPen As new Pen(Color.Black, 3)
      Dim startPoint As new Point(0, 0)
      Dim endPoint As new Point(100, 100)
      g.DrawLine(blackPen, startPoint, endPoint)
   End Sub

   Shared Sub Main()
      Application.Run(new LineForm())
   End Sub

End Class

[C#]
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;

public class LineForm : Form 
{
   protected override void OnPaint(PaintEventArgs e)
   {
      Graphics g = e.Graphics;
      Pen blackPen = new Pen(Color.Black, 3);
      Point startPoint = new Point(0, 0);
      Point endPoint = new Point(100, 100);
      g.DrawLine(blackPen, startPoint, endPoint);
   }

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

}