Bonjours,
comment fait-on pour tracer une ligne sur l'evenement OnPaint ?
Bonjours,
comment fait-on pour tracer une ligne sur l'evenement OnPaint ?
Hello,
l'argument e de type PaintEventArgs contient un membre de type Graphics. C'est lui que tu vas utiliser pour tracer ta ligne. Un exemple :
a+
Code : Sélectionner tout - Visualiser dans une fenêtre à part e.Graphics.DrawLine(Pens.Red, 0, 0, 100, 100);
Merci,
Et pour tracer une ligne en pointillé (en gérant le pas ) ?
Je crée un nouveau controle utilisateur (Ajouter > Contrôle Utilisateur) et dedans je lui met le code suivant :
Ca permet d'avoir une ligne horizontale dont on peut modifier la longueur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 Public Class LigneHorizontale Inherits System.Windows.Forms.UserControl #Region " Code généré par le Concepteur Windows Form " Public Sub New() MyBase.New() 'Cet appel est requis par le Concepteur Windows Form. InitializeComponent() 'Ajoutez une initialisation quelconque après l'appel InitializeComponent() End Sub 'La méthode substituée Dispose du UserControl pour nettoyer la liste des composants. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Requis par le Concepteur Windows Form Private components As System.ComponentModel.IContainer 'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form 'Elle peut être modifiée en utilisant le Concepteur Windows Form. 'Ne la modifiez pas en utilisant l'éditeur de code. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() ' 'LigneHorizontale ' Me.Name = "LigneHorizontale" Me.Size = New System.Drawing.Size(150, 2) End Sub #End Region Private Sub LigneHorizontale_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint Dim objPen1 As Pen = New Pen(Color.Gray, 1) Dim objPen2 As Pen = New Pen(Color.White, 1) Dim objPoint1 As Point = New Point(0, 0) Dim objPoint2 As Point = New Point(Me.Size.Width, 0) Dim objPoint3 As Point = New Point(0, 1) Dim objPoint4 As Point = New Point(Me.Size.Width, 1) e.Graphics.DrawLine(objPen1, objPoint1, objPoint2) e.Graphics.DrawLine(objPen2, objPoint3, objPoint4) End Sub End Class
A partir de là on la retrouve dans la boîte à outils dans "Mes controles utilisateurs", rien de plus simple à utiliser.
y a pas plus simple ? il doit bien y avoir une fonction predefinie ?
Envoyé par Emcy
utilise la propriété DashStyle du Pen que tu utilises pour tracer ta ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part monPen.DashStyle = Drawing2D.DashStyle.Dash
Merci de ta réponse,
ça m'a permis de découvrir ce système pour définir la taille des pointillés :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ' Dessine Ligne en pointillé Dim Point1 As New Point(0,0) Dim Point2 As New Point(50,50) Dim DashVal As Single() = {3, 3} 'définition des la taille des pointillés Dim MyPen As New Pen(Color.Blue,1) 'définition de la largeur et de la couleur du pinceau MyPen.DashStyle = DashStyle.Custom 'actvation de la Pattern Custom MyPen.DashPattern = DashVal 'affectation de la Pattern Custom e.Graphics.DrawLine(MyPen, Point1, Point2)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager