1 - Généralités
1 - Dessiner une forme
Pour dessiner une forme, il faut:
1 - Obtenir un objet graphique
Ex : Utiliser l'évènement Paint d'un formulaire ou d'un contrôle PictureBox.
2 - Définir la forme à dessiner
Dim Rect As New Rectangle(50, 50, 80, 80)
3 - Définir le crayon ou pinceau à utiliser
Dim Pen1 As New Pen(Color.Blue,5)
4 - Dessiner la forme
e.Graphics.DrawRectangle(Pen1, Rect)
Voici un exemple dessinant un graphique sous forme de barres pour des valeurs mensuelles contenues dans un tableau T(12,1). Les recettes en bleu et les dépenses en rouge sont présentées côte à côte pour chaque mois.
Private Sub pb1_Paint(...
Dim penB As New Pen(Color.Blue, 8)
Dim penR As New Pen(Color.Red, 8)
Dim Li, x, y As Integer
For Li=1 To 12
x = Li * 10
e.Graphics.DrawLine(penB, x, y, x, y + T(Li,0))
e.Graphics.DrawLine(penR, x + 8, y, x + 8, y + T(Li,1))
Next
End Sub
2 - Positionner du texte
DrawString (texte, police, pinceau, x, y)
3 - Modifier un dessin
On peut utiliser la méthode Refresh de la PictureBox pour modifier un dessin (par exemple pour mettre à jour un changement d'échelle du graphique).
Private Sub nudEchV_ValueChanged(...
EchV = nudEchV.Value
PB1.Refresh()
End Sub
2 - Les polices de caractères
1 - Remplir une liste des polices installées
Le code sera inséré, par exemple, dans la procédure de chargement du formulaire. Tout d'abord, nous définissons :
- une collection 'Polices' pour contenir toutes les polices installées,
- un objet 'Pol' du type FontFamily pour parcourir chacune de ces polices.
A l'aide d'une boucle For Each, on parcourt chaque police et on ajoute son nom à la liste.
Pour terminer, il ne faut pas oublier d'indiquer la source de données du contrôle utilisé pour l'affichage. Ici un 'ComboBox' nommé 'cbListe'.
Private Sub Form1_Load(...
Dim Polices As New Collections.ArrayList()
Dim Pol As FontFamily
For Each Pol In FontFamily.Families
Polices.Add(Pol.Name)
Next
cbListe.DataSource = Polices
End Sub
2 - Dessiner une police dans un contrôle
Pour pouvoir dessiner, commençons par importer 'System.Drawning'.
Imports System.Drawing
Nous aurons besoin d'un objet graphique.
Dim g As Graphics
Le dessin de la police pourra être créé, par exemple, dans un 'PictureBox' nommé ici 'pbTrace', chaque fois que nous sélectionnerons une police nouvelle dans le ComboBox (voir son remplissage dans le chapitre précédent). Le texte affiché sera "police", suivi du nom de la police.
Il faut commencer par une méthode 'Clear' pour effacer le dessin précédent.
Private Sub cbListe_TextChanged(...
g = pbTrace.CreateGraphics
g.Clear(Me.BackColor)
g.DrawString("Police " & cbListe.Text, New Font

(cbListe.Text, 28), Brushes.Blue, New PointF(0, 0))
End Sub
3 - Effet sur les polices
1 - Rotation
On peut incliner l'angle d'écriture, dans le sens des aiguilles d'une montre, le paramètre étant en degrés.
g.RotateTransform(20)
2 - Texture
Pour écrire du texte avec un pinceau ayant une texture non uniforme, il faut :
- créer un objet bitmap, par exemple à partir d'un fichier,
- créer le pinceau utilisant l'image,
- utiliser ce pinceau dans la procédure d'écriture.
Dim Texture = New Bitmap("MonImage.bmp")
Dim Pinceau = New TextureBrush(Texture)
g.DrawString("Police " & cbListe.Text, New Font(cbListe.Text,

Pinceau, New PointF(0, 0))