VB.Net Picturebox dessiner plus d'une ligne

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 27 sept. 2007 à 20:01
tovin Messages postés 164 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 14 août 2013 - 30 sept. 2007 à 08:07
Salut...

Je fais dessiner des croix dans un picturebox. Je veux dessiner quelques lignes qui utilise les coordonnées des croix.

J'ai fini par réussir à faire dessiner une ligne

Je réussi à faire dessiner une ligne dans un picturebox en faisait redessiner les éléments que j'avais auparavant. Donc je refais dessiner l'ensemble des croix pour ensuite dessiner une ligne.

Problème #1.
Comment est-il possible de faire dessiner plus d'une ligne sans que les ligne que j'ai dessiner auparavant s'effacent ???

Problème #2
Comment est-il possibl;e de faire dessiner une ligne sans être obliger de faire un .Clear du picturebox et de refaire dessiner l'ensemble des crois pour ensuite dessiner une ligne.

merci de votre aide

1 réponse

tovin Messages postés 164 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 14 août 2013 3
30 sept. 2007 à 08:07
Bonjour,
A mon humble avis, c'est parce que le dessin n'est pas conservé dans une variable globale de la feuille (g2 dans mon exemple)
Dim g2 As Graphics = Graphics.FromImage(img) 
Dim colour As Byte (couleur à définir)
    Dim epaisseur As Byte (épaisseur à définir)
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        Dim g1 As Graphics = PictureBox45.CreateGraphics
        Dim pencil = New Pen(colour, epaisseur)
rem pour tracer un rectangle
g1.DrawLine(New Pen(colour, 1), e.X - 1, e.Y - 1, e.X + 1, e.Y + 1)
                If i >= 1 Then GoTo suite                cote(0) e.X : cote(1) e.Y
suite:
                g1.DrawLine(New Pen(colour, 1), e.X - 1, e.Y - 1, e.X + 1, e.Y + 1)                cote(2) e.X : cote(3) e.Y
                i += 1
                If i = 3 Then
                    Dim rc As New Rectangle(cote(0), cote(1), cote(2) - cote(0), cote(3) - cote(1))
                    g1.DrawRectangle(pencil, rc)
                    g2.DrawRectangle(pencil, rc)
                    i = 0
                End If

Regardes si ça colle !
A +
0
Rejoignez-nous