IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Tracer une ligne (OnPaint)


Sujet :

Windows Forms

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut [VB.NET] Tracer une ligne (OnPaint)
    Bonjours,

    comment fait-on pour tracer une ligne sur l'evenement OnPaint ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e.Graphics.DrawLine(Pens.Red, 0, 0, 100, 100);
    a+

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    Merci,

    Et pour tracer une ligne en pointillé (en gérant le pas ) ?

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Je crée un nouveau controle utilisateur (Ajouter > Contrôle Utilisateur) et dedans je lui met le code suivant :

    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
    Ca permet d'avoir une ligne horizontale dont on peut modifier la longueur.
    A partir de là on la retrouve dans la boîte à outils dans "Mes controles utilisateurs", rien de plus simple à utiliser.

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    y a pas plus simple ? il doit bien y avoir une fonction predefinie ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par Emcy
    y a pas plus simple ? il doit bien y avoir une fonction predefinie ?

    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

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    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)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.net] selectionner une ligne DataGrid
    Par MichMich29 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 31/05/2007, 20h36
  2. [FLASH MX2004] Tracer une ligne en temps réel
    Par tomtom- dans le forum Flash
    Réponses: 1
    Dernier message: 16/02/2006, 09h52
  3. Tracer une ligne sur une image
    Par Guillaume602 dans le forum Windows
    Réponses: 5
    Dernier message: 05/01/2006, 20h33
  4. [FP]Tracer Une ligne avec Dev-pascal
    Par yffick dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 17/12/2003, 16h33
  5. Tracer une ligne droite sans les interruptions
    Par Stef784ever dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 25/11/2002, 01h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo