Bonjour,
Je viens de tomber sur un os, j'avoue que je n'arrive pas à comprendre quelle erreur j'aurais pu faire, et j'en viens à supposer un bug du compilateur.
Alors avant d'envoyer un ticket, je viens voir si quelqu'un ne verrait pas une bourde de ma part dans le code, pourtant simple, que je vous soumet.
Le but est simplement de fixer la couleur de texte d'un contrôle quelconque, en fonction de la couleur du fond, de manière à ce qu'on ait une lisibilité minimale.
En clair, si la couleur du fond est foncée on met le texte en blanc, sinon en noir.
Mais voilà, à l'exécution, je me retrouve avec une erreur System.OverflowException*: 'L'opération arithmétique a provoqué un dépassement de capacité.'
Le code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
    Function set_TextColor_From_BackGround(BGColor As Color) As Color
 
        If ((BGColor.B + BGColor.R + BGColor.G) / 3 <= 128) Then     ' Si couleur foncée 
            Return Color.White                                              ' Texte blanc pour qu'il reste lisible
        Else                                                            ' Si couleur claire
            Return Color.Black                                              ' Texte en noir
        End If
 
    End Function
Et l'erreur est provoquée par la simple addition (BGColor.B + BGColor.R + BGColor.G), sachant que BGColor.B et BGColor.R valent 128, et BGColor.G vaut 255... (BGColor => "{Name=ff80ff80, ARGB=(255, 128, 255, 128)}" )

D'avance merci