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

VB.NET Discussion :

Dessiner sans effacer dans une picture box en VB.NET


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2020
    Messages : 1
    Par défaut Dessiner sans effacer dans une picture box en VB.NET
    Bonjour à toutes et à tous,

    Dans le cadre de mon métier, j'ai beaucoup programmé en VB6 (maintien et évolution de logiciel) et maintenant on me demande de passer toutes ces applications en VB.NET.
    Novice, j'ai donc récupéré des cours (P. Lasserre en particulier) et pour une grande partie du code, j'ai réussi la traduction.
    En revanche, je bloque sur un problème graphique.
    En VB6, dans une picture box, je dois faire bouger avec la souris un cercle qui doit laisser derrière lui la trajectoire de son centre. Pour le cercle j'ai écrit ceci et ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub mon_image_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles mon_image.MouseMove
            Me.mon_image.Invalidate()
    End Sub
     
    Private Sub mon_image_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles mon_image.Paint
            Dim pt As Point = mon_image.PointToClient(Control.MousePosition)
            e.Graphics.DrawEllipse(monStylo, pt.X, pt.Y, 30, 30)
    End Sub
    Mon problème est que je n'arrive pas à tracer le centre du cercle avec sa trajectoire.
    Cela doit vous sembler trivial, mais je bloque vraiment, j'ai lu des tuto qui me disent d'utiliser drawlines mais rien ne se trace.
    Merci d'avance pour votre soutien.

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    Bonjour

    Il faut lire les tutos de la FAQ du forum sur l'API GDI+,tout y est.

    voici un exemple code .vb qui utilise intensivement la structure Rectangle (elle est présente partout dans GDI+ quand il s'agit de dessiner des figures de base)

    code behind.vb qui fera peut etre ton bonheur:
    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
     
     
    Public Class Form2
        Private startPoint As Point = Point.Empty
        Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
            startPoint = e.Location
        End Sub
     
        Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
            Me.PictureBox1.Invalidate()
        End Sub
     
        Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
            Dim pt As Point = Me.PictureBox1.PointToClient(Control.MousePosition)
            Dim rect As New Rectangle(pt.X, pt.Y, 50, 50) ' rectangle englobant de ton Ellipse ou Cercle
            e.Graphics.DrawEllipse(Pens.Yellow, rect) 'dessine ton Ellipse ou Cercle
            e.Graphics.DrawRectangle(Pens.Red, rect) 'dessine son rectangle englobant
     
            Dim centerEllipse As New Point(pt.X + 25, pt.Y + 25) 'center  de ton Ellipse ou Cercle
     
            'le rectangle englobant de ton centre sous forme d'Ellipse
            Dim rectCenter As New Rectangle(centerEllipse.X - 5, centerEllipse.Y - 5, 2 * 5, 2 * 5)
     
            'crayon pointillé
            Dim penLine As New Pen(Brushes.Magenta, 1.0)
            penLine.DashStyle = Drawing2D.DashStyle.Dash
     
            'dessine le centre du cercle sous forme d'ellipse
            e.Graphics.DrawEllipse(penLine, rectCenter)
     
            'dessine  la ligne "traceuse"
            e.Graphics.DrawLine(penLine, startPoint, centerEllipse)
     
     
        End Sub
     
     
    End Class
    bon code...

Discussions similaires

  1. [Débutant] Colorer un carré dans une picture box
    Par mattmax dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/06/2018, 11h47
  2. [Débutant] [C#]Charger une image dans une picture box
    Par Pas_d_Idee dans le forum Windows Forms
    Réponses: 6
    Dernier message: 21/09/2012, 01h05
  3. Probleme de dessin dans une Picture Box
    Par titou640 dans le forum C#
    Réponses: 0
    Dernier message: 12/03/2012, 16h14
  4. comparer une picture box et une image dans une imagelist
    Par nair17 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/03/2009, 13h36
  5. dessin losange remplit dans un picture box
    Par scr dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/12/2005, 10h43

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