edit : j'ai trouvé tout seul : je cliquais trop tôt, il relançait l'opération avec trop de promptitude... Il me suffit de patienter une seconde ou deux avant de reclicker et ça fonctionne correctement. ouf !
J'ignore si l'habitude du forum est de supprimer la discussion ou de la laisser en résolu... je laisse les admins décider !



bonjour, encore besoin de votre aide ...

je ne comprends pas ce que je fais de mal : un bouton permet d'afficher quelque chose sur une picturebox.
la procédure est venue d'une autre question posée ici, et il me semble la suivre correctement.

D'ailleurs ce bouton est le seul qui foire, les autres tournent plusieurs fois successivement sans me poser de problème !

au 1er click, tout fonctionne bien : l'image est modifiée comme je le veux.

au second click j'obtiens un erreur ligne 39:


Une exception non gérée du type 'System.ArgumentException' s'est produite dans System.Drawing.dll

Informations supplémentaires*: Le paramètre n'est pas valide.


voici le code : l'erreur est la ligne en gras

Code VB.net : 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
Public Class flattop_v2
    Dim myBitmap1 As Bitmap


    Private Sub boutontest_Click(sender As Object, e As EventArgs) Handles boutontest.Click
        myBitmap1 = New Bitmap("C:\Users\Utilisateur\Documents\Visual Studio 2013\Projects\Flattop\Flattop\Resources\zoom1.JPG")
        Dim newgraphic1 As Graphics = Graphics.FromImage(myBitmap1)
        Dim vx, vy, i,j ,k As Integer
        For i = 0 To 83
            For j = 0 To 52
                mypen.Width = 4
                mypen.Color = Color.White
                For k = 0 To 6
                    If bordxy(i, j, k) = 0 Then mypen.Color = Color.Blue
                    If bordxy(i, j, k) = 1 Then mypen.Color = Color.Black
                    If bordxy(i, j, k) = 2 Then mypen.Color = Color.Coral
                    If bordxy(i, j, k) = 3 Then mypen.Color = Color.DarkGreen
                    If bordxy(i, j, k) = 4 Then mypen.Color = Color.Red
                    If bordxy(i, j, k) = 5 Then mypen.Color = Color.White
                    If k = 0 Then vx = 0 : vy = 0
                    If k = 1 Then vx = 0 : vy = -15
                    If k = 2 Then vx = 10 : vy = -10
                    If k = 3 Then vx = 10 : vy = 10
                    If k = 4 Then vx = 0 : vy = +15
                    If k = 5 Then vx = -10 : vy = 10
                    If k = 6 Then vx = -10 : vy = -10
                    newgraphic1.DrawEllipse(mypen, centrecasex1(i, j) + vx, centrecasey1(i, j) + vy, 1, 2)
                Next
            Next
        Next
        If carte1.Image IsNot Nothing Then carte1.Image.Dispose()
        carte1.Image = myBitmap1
        newgraphic1.Dispose()

    End Sub
End Class

je ne comprends pas ce qui peut fonctionner ailleurs et une fois lors du 1er click, et pas au second click !

Merci d'avance...