cs_Bruno28
Messages postés21Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention18 octobre 2005
-
16 août 2005 à 12:05
cs_Bruno28
Messages postés21Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention18 octobre 2005
-
17 août 2005 à 08:25
Bonjour.
(suis en VB.Net 2003)
J'ai enregistré une couleur dans un fichier .INI (utilisation de ColorDialog)
Je sais lire le fichier ini, mais quand je récupère ma couleur et que je veut l'appliquer à un objet, j'obtient le message :
Une valeur de type 'String' ne peut pas être convertie en 'System.Drawing.Color'
cs_Bruno28
Messages postés21Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention18 octobre 2005 16 août 2005 à 13:27
Merci à toi ChRB
Mon problème, c'est que j'ai déjà essayé, mais j'obtient le message suivant: 'Le cast spécifié n'est pas valide.'
Ce message apparait sur la ligne : Objet..ForeColor = StrColor
J'ai essayé les formats suivants (en le modifiant aussi dans l'enregistrement de ma couleur, évidement)
..Color.FromName(StrColor)
..Color.FromArgb(StrColor)
..Color.FromKnownColor(StrColor)
A comprend pas.
Ci après, ma methode pour l'enregistrement dans mon fichier INI:
If (ColorDialog1.ShowDialog() = DialogResult.OK)
Then
Dim CouleurTexte
CouleurTexte = ColorDialog1.Color.ToArgb
Objet.ForeColor = ColorDialog1.Color
EcrireINI("Couleur", "Texte", CouleurTexte)
End
If
Pour info, si sélection du noir en couleur de base, écrit dans mon fichier: -16777216
cs_Bruno28
Messages postés21Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention18 octobre 2005 16 août 2005 à 13:51
Re-Merci à toi ChRB
Excuses moi, suis trop bète. C'est dur après manger, et suis pas encore partit en vacances.
J'ai utilisé "StrColor" au lieu d'utiliser "Color" comme variable.
Dim CouleurTexte as String = ColorDialog1.Color.Name
Ca récupérera le nom de la couleur en toute lettre, mais par contre en faite pour la récupéré,
si c'est une couleur qui ne connais pas (ex: fff80c0) il fera comme si c'était
du blanc ou une couleur transparente.
Donc pour géré toute les couleurs utilise comme tu à fait
Dim CouleurTexte as String = ColorDialog1.Color.ToArgb
Et pour la récupéré
Dim Color As System.Drawing.Color = System.Drawing.Color.FromArgb(ArgbColor)
ArgbColor de type
integer
Voilà
ChRB
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
cs_Bruno28
Messages postés21Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention18 octobre 2005 17 août 2005 à 08:25
Merci ChRB
Je préfère utiliser ToArgb qui récupère toutes les couleurs. En plus, si je récupère un .name, la chaine récurérée est : Color [Red], alors que je doit réutiliser Red uniquement. En plus ça ne marche que pour les couleurs de base, après on récupère une valeur ARGB écrite comme suit: Color = [A.56, R.255, G.200, B.128]