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 :

dessin sur une form: problème et mouvement


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut dessin sur une form: problème et mouvement
    Bonjour,

    Je dois "dessiner" des formes et je le fais directement sur un formulaire de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g.DrawImage(Image.FromFile(p2), e.X, e.Y)
    En réalité je mets une image.

    J'ai 2 questions:

    1. la première est plutôt un problème... en fait quand je mets donc cette petite image, j'ouvre un autre formulaire pour mettre des données. Le problème est que si je l'ouvre sur de l'antérieur, il m'efface ma petite image... et je ne comprends pas pourquoi?...

    2. J'aimerais pouvoir bouger cette petite image avec la souris, vous pouvez me donner une piste?

    Merci!!

  2. #2
    Membre régulier
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2008
    Messages : 83
    Points : 96
    Points
    96
    Par défaut
    salut,
    je vois que dans le code de ton graphique tu utilises E.x et E.y pour la position.
    tu l'as placés dans un evemenent mouse move ?
    Sinon essaye de placer ton image dans un control picture box ou autre et de le bouger avec la souris ?

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    le draw est à mettre dans l'evenement paint du controle en question
    (chaque controle se redessine souvent, il faut redessiner ton truc à chaque fois aussi)

    pour le déplacement, il faut changer les coordonnées sur le mousemove et faire control.invalidate (qui force le rappel du dessin)

    enfin y a mieux, mais regarde dejà si ca te suffit
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    le draw est à mettre dans l'evenement paint du controle en question
    (chaque controle se redessine souvent, il faut redessiner ton truc à chaque fois aussi)
    +1, si tu dessines manuellement il faut toujours le faire dans le Paint

    Par contre, je me demande si pour ton besoin il ne serait pas plus simple d'utiliser un PictureBox... En tous cas ça faciliterait largement le déplacement avec la souris. Pour le déplacement, tu peux gérer les évènements MouseDown, MouseMove, et MouseUp, ou utiliser un composant que j'ai créé exprès pour ça

  5. #5
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    pour le déplacement c'est bon... merci

    par contre je ne sais pas comment faire pour le mettre dans un picture box... mon dessin est dans un toolstripbuton d'une barre d'outils... je dois le créer au moment de cliquer sur le bouton? ou le précréer sur la form?

    et l'evenement paint c'est celui de la form? si je le met à l'intérieur il se redessine à chaque fois?

    Merci...

    J'ai mis une autre discussion (pardon, je voulais la supprimer mais trop tard) qui donne suite à ce message ici:

    http://www.developpez.net/forums/d81...s/#post4676524

  6. #6
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Alors pour bouger et le picture box c'est bon, je laisse le code complet, si quelqu'un en a besoin un jour:

    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
     
    Dim i As Integer
        Dim Bouge As Boolean
        Dim vary As Integer
        Dim varx As Integer
        Dim cliquex As Integer
        Dim cliquey As Integer
     
        Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
            'On récupere les coordonnées X et Y de la souris sur la feuille et on les stockes
            varx = e.X
            vary = e.Y
        End Sub
     
        Private Sub PB(ByRef PictBox As PictureBox, ByVal e As System.Windows.Forms.MouseEventArgs)
            'bouton gauche souris enfoncé
            If Bouge = True Then
                'bouger
                varx = PictBox.Left + e.X
                vary = PictBox.Top + e.Y
                PictBox.Location = New System.Drawing.Point(varx - cliquex, vary - cliquey)
            End If
        End Sub
     
        Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
            Me.PB(Me.PictureBox1, e)
        End Sub
     
        Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
            Me.Bouge = True
            'on stocke la position du clic
            cliquex = e.X
            cliquey = e.Y
        End Sub
        Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
            Me.Bouge = False
        End Sub

    Par contre je sais pas où redessiner... dans Onpaint?... pour pas que cela s'efface?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Le code que tu as écrit pour déplacer la PictureBox correspond exactement au cas d'utilisation du composant que j'ai mentionné plus haut

    Sinon, je commence à être un peu perdu... où est-ce que tu dessines ? dans la PictureBox ou dans un bouton ?

  8. #8
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Ahh je n'ai pas copié ton composant pourtant mais je me suis aidé d'un code de quelqu'un qui déplace des murs, je sais pas si tu le connais mais il travaille avec des groupebox.

    En fait j'ai un bouton dans le toolstrip je te montre le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
        Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click
            dibujapresa = True
        End Sub
     
    Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
    If dibujapresa Then
                'se dibuja la presa con una imagen
                PictureBox1.Location = New System.Drawing.Point(e.X, e.Y)
                PictureBox1.BackgroundImage = Image.FromFile(dirExe & "\imagenes\presa1.png")
    End if
    End sub
    Je clique dessus, puis ensuite je le dessine une première fois de cette manière.

    Par contre j'avais un problème pour redessiner, mais en fait en utilisant un picturebox je crois que c'est plus la peine de le redessiner!

    Une dernière question... là je le fais avec un picturebox donc ça va.
    Maintenant je veux m'attaquer à une courbe que je dessine et j'aurais donc 2 problème:
    - gdi redessiner donc pour pas perdre le dessin...
    - bouger un seul point de la courbe?

    Merci!

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Lnmex Voir le message
    - gdi redessiner donc pour pas perdre le dessin...
    Comme on te l'a dit plus haut, il faut mettre le code du dessin dans l'évènement Paint (celui du contrôle où tu dessines)

    Citation Envoyé par Lnmex Voir le message
    - bouger un seul point de la courbe?
    Il faut tout redessiner

  10. #10
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Ok merci, bon ben je vais m'y mettre! Merci

  11. #11
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    J'ai une autre question

    Comment faire pour créer une picturebox à chaque fois que je clique sur le bouton car je peux en avoir beaucoup... plus de 40 alors si je les crée avant, ça fait un peu moche dans le code...

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim pb as New PictureBox()
    pb.Image = ...
    Me.Controls.Add(pb)

  13. #13
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Merci pour le code pour la créer, mon problème est plus dans le fait que j'utilise mouseup, down du picturebox (donc avec le nom) je ne sais pas trop comment changer... si j'en crée une nouvelle à chaque fois...

    J'ai du coup voulu essayer comme ca pour pouvoir avoir une truc un peu pareil avec le bitmap, mais ça fonctionne pas... j'ai pas d'erreur mais je vois rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim monBitmap As Bitmap = New Bitmap(185, 50)
    Dim monGraphic As Graphics = Graphics.FromImage(monBitmap)
    monGraphic .DrawImage(Image.FromFile(p2), e.X, e.Y)
    (en tout cas merci de ton aide, j'ai moins de mal!)

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Lnmex Voir le message
    Merci pour le code pour la créer, mon problème est plus dans le fait que j'utilise mouseup, down du picturebox (donc avec le nom) je ne sais pas trop comment changer... si j'en crée une nouvelle à chaque fois...
    Pour attacher les handlers d'évènement, utilise l'instruction AddHandler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    AddHandler pb.MouseUp, AddressOf pb_MouseUp
     
    ...
     
    Private Sub pb_MouseUp(sender As Object, e As MouseEventArgs)
        Dim pb As PictureBox = DirectCast(sender, PictureBox)
        ' fais ce que tu veux avec la picturebox...
     
    End Sub
    Avec le composant dont je parlais plus haut, tu n'aurais pas besoin de gérer ces évènements, il suffirait de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pb.EnableDragMove(True)

  15. #15
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Vraiment merci, je m'en vais regarder tout ça!

  16. #16
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Je continue mon post, car je dois dessiner donc des lignes (en continu) et les "lier" avec mes pictures box.

    J'ai un premier problème, je dessine les lignes à la main de cette manière:

    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
    61
    62
    63
     
    '*********** MOUSE DOWN *******************
     
        Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
            If dibujalinea Then
                'Obtenemos las cordenadas del puntero del mouse
                SelectRect.Width = 0
                SelectRect.Height = 0
                SelectRect.X = e.X
                SelectRect.Y = e.Y
                ps.X = e.X
                ps.Y = e.Y
            End If
        End Sub
     
        '*********** MOUSE MOVE *******************
     
        Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
            If dibujalinea Then
                If (e.Button = Windows.Forms.MouseButtons.Left) Then
                    ControlPaint.DrawReversibleFrame(Me.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed)
                    SelectRect.Width = e.X - SelectRect.X
                    SelectRect.Height = e.Y - SelectRect.Y
                    ControlPaint.DrawReversibleFrame(Me.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed)
                    pe.X = e.X
                    pe.Y = e.Y
                End If
            End If
    End sub
     
     
    Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
     
            Dim g As Graphics = Me.CreateGraphics()
     
            If dibujalinea Then
     
                Dim p As Pen = New Pen(Color.Aqua, 2)
                ControlPaint.DrawReversibleFrame(Me.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed)
                myLine = New Linea(0, 0, 0, 0)
                If vector = 0 Then
                    g.DrawLine(myLine.Pincel, ps.X, ps.Y, pe.X, pe.Y)
                    mmx = pe.X
                    mmy = pe.Y
                Else
                    g.DrawLine(myLine.Pincel, mmx, mmy, pe.X, pe.Y)
                    mmx = pe.X
                    mmy = pe.Y
                    vector = vector + 1
                End If
     
                vector = vector + 1
                g.Dispose()
                vector = vector + 1
                no_vector(vector) = vector
                elrio(i, 0) = ps.X
                elrio(i, 1) = ps.Y
                elrio2(i, 0) = pe.X
                elrio2(i, 1) = pe.Y
                i = i + 1
                elrio(i, 0) = 0
                elrio(i, 1) = 0
            End If
    Mon problème est que lorsque j'ajoute mes pictures box "par dessus" cela m'efface les lignes... (j'ai recopié ce même code : celui de MouseUp, dans l'évènement Paint de la Form, je sais pas si c'est l'idée mais j'ai le même problème).
    Et si je bouge la pictureBox ça a le même effet qu'une gomme!

  17. #17
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Si tu ne tiens pas compte de ce qu'on te dit, tu vas jamais avancer...
    Le code de dessin DOIT être dans l'évènement Paint, sinon ce sera effacé et pas redessiné dès que quelque chose va s'afficher par dessus

  18. #18
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Si si comme j'ai dit je l'ai mis dans l'évènement Paint (aussi)... car si je le met seulement dans l'évènement paint et plus dans MouseUp, il ne me dessine rien...
    (je l'ai mis 2 fois en fait... désolée je débute dans les GDI et j'ai un peu de mal...)

    Même si je suis sûre qu'on ne doit pas le répéter, je ne sais pas pourquoi il ne me le dessine pas si je ne le met QUE dans Paint...

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
     
        Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
            Dim g As Graphics = Me.CreateGraphics()
     
            If dibujalinea Then
     
                Dim p As Pen = New Pen(Color.Aqua, 2)
                ControlPaint.DrawReversibleFrame(Me.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed)
                myLine = New Linea(0, 0, 0, 0)
                If vector = 0 Then
                    g.DrawLine(myLine.Pincel, ps.X, ps.Y, pe.X, pe.Y)
                    mmx = pe.X
                    mmy = pe.Y
                Else
                    g.DrawLine(myLine.Pincel, mmx, mmy, pe.X, pe.Y)
                    mmx = pe.X
                    mmy = pe.Y
                    vector = vector + 1
                End If
     
                vector = vector + 1
                'g.DrawRectangle(p, SelectRect)
                g.Dispose()
                vector = vector + 1
                no_vector(vector) = vector
                elrio(i, 0) = ps.X
                elrio(i, 1) = ps.Y
                elrio2(i, 0) = pe.X
                elrio2(i, 1) = pe.Y
                i = i + 1
                elrio(i, 0) = 0
                elrio(i, 1) = 0
            End If
     
        End Sub
     
     
     
        '**************** MOUSE UP ***********************
     
        Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
     
            Dim g As Graphics = Me.CreateGraphics()
     
            If dibujalinea Then
     
                Dim p As Pen = New Pen(Color.Aqua, 2)
                ControlPaint.DrawReversibleFrame(Me.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed)
                myLine = New Linea(0, 0, 0, 0)
                If vector = 0 Then
                    g.DrawLine(myLine.Pincel, ps.X, ps.Y, pe.X, pe.Y)
                    mmx = pe.X
                    mmy = pe.Y
                Else
                    g.DrawLine(myLine.Pincel, mmx, mmy, pe.X, pe.Y)
                    mmx = pe.X
                    mmy = pe.Y
                    vector = vector + 1
                End If
     
                vector = vector + 1
                'g.DrawRectangle(p, SelectRect)
                g.Dispose()
                vector = vector + 1
                no_vector(vector) = vector
                elrio(i, 0) = ps.X
                elrio(i, 1) = ps.Y
                elrio2(i, 0) = pe.X
                elrio2(i, 1) = pe.Y
                i = i + 1
                elrio(i, 0) = 0
                elrio(i, 1) = 0
            End If
    End Sub

  19. #19
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Dans l'évènement Paint, ne crée pas un nouveau Graphics, utilise celui qui est disponible dans les paramètres de l'évènement (e.Graphics). Je sais pas si le problème est là, mais tu peux toujours essayer ça...

  20. #20
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Je viens d'essayer ce que tu viens de me proposer mais non... je sais pas si c'est parce que je dessine dans le paint de la form directemet?...

    Je garde le g pour pouvoir utiliser dispose (j'ai essayé de l'enlever ça change rien...)

    En fait c'est marrant car je vois la création du rectangle en pointillé, qui ne s'efface pas lui, et pas la ligne...

    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
     
        Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
     
            Dim g As Graphics = Me.CreateGraphics()
     
     
            If dibujalinea Then
     
                Dim p As Pen = New Pen(Color.Aqua, 2)
                ControlPaint.DrawReversibleFrame(Me.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed)
                myLine = New Linea(0, 0, 0, 0)
                If vector = 0 Then
                    e.Graphics.DrawLine(myLine.Pincel, ps.X, ps.Y, pe.X, pe.Y)
                    mmx = pe.X
                    mmy = pe.Y
                Else
                    e.Graphics.DrawLine(myLine.Pincel, mmx, mmy, pe.X, pe.Y)
                    mmx = pe.X
                    mmy = pe.Y
                    vector = vector + 1
                End If
     
                vector = vector + 1
                g.Dispose()
     
            End If

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. problème dessin sur une image
    Par mirinda dans le forum Débuter
    Réponses: 2
    Dernier message: 30/01/2009, 20h00
  2. Problème de dessin sur une form
    Par Alchemist dans le forum Delphi
    Réponses: 7
    Dernier message: 27/01/2007, 22h10
  3. [débutant] problème d'image sur une form
    Par Anthony17 dans le forum Delphi
    Réponses: 3
    Dernier message: 21/11/2006, 14h49
  4. Dessiner un rectangle sur une forme
    Par Neo41 dans le forum MFC
    Réponses: 6
    Dernier message: 13/08/2005, 01h08
  5. [Servlet] [Image] Dessiner sur une image
    Par gaia_dev dans le forum 2D
    Réponses: 5
    Dernier message: 01/09/2004, 17h11

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