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 :
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)}" )
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
D'avance merci
Partager