String en System.Drawing.Color :: Conversion [Résolu]

Signaler
Messages postés
7
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2006
-
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
-
Hello !

Bon comme le dit le titre je recherche à convertir un String en System.Drawing.Color...
En faîte je cherche à charger depuis un fichier de configuration la couleur d'arriére plan (je la sauvegarde aussi quand l'utilisateur en choisit une).
Du coup dans le fichier de configuration j'ai :

CouleurFond=Color [A=255, R=228, G=226, B=254]

Et je souhaite donc reprendre le "Color [A=255, R=228, G=226, B=254]" pour charger la couleur de fond au démarrage de l'application :)

Merci d'avance :) @++

8 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Oups erreur de frappe : Color.FromArgb
:-)

Sinon je te déconseille de passer par ToString pour stocker ta couleur, passe plutôt par le TypeConverter dont le type Color dispose.
En plus il te permettra d'éviter de passer par le parsage de la chaine et FromArgb, comme il permet de faire l'opération dans le sens inverse.
Et tu ne t'exposera pas non plus au changement de forme de la chaine : pour une couleur nommée, ToString renverra seulement le nom (ex : "Color [Red]")

/*
coq
MVP Visual C#
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Obtention du TypeConverter :
TypeConverter colorConverter = TypeDescriptor.GetConverter(typeof(Color));

Petit exemple pour la conversion en chaine :
string ColorFond = (string)colorConverter.ConvertTo(col , typeof(string));

Et l'opération inverse :
Color col = (Color)colorConverter.ConvertFrom(colStr);

Voilà :-)

/*
coq
MVP Visual C#
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Salut,

La méthode Color.FormArgb te permettras de le faire.

/*
coq
MVP Visual C#
*/
Messages postés
7
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2006

Okay merci c'est bien ça que je cherchez :)
Messages postés
7
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2006

Oui j'ai vus merci :)
Messages postés
7
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2006

Heu par contre je n'ai pas trop compris pour le typeconverter vue que je veux enregistrer dans un fichier les données :

ColorDial.ShowDialog();

this.NfoViewer.BackColor = ColorDial.Color;
string ColorFond=Convert.TypeConverter(ColorDial.Color);

IniFile ReadIni=new IniFile("Config.ini");

ReadIni.SetValue("Design","CouleurFond",ColorFond);
ReadIni.Save();

En gros j'ai ça dans ma fonction qui sauvegarde la couleur. (j'ai remplacer le tostring par TypeConverter mais bon ça ne marche pas ^^)
Messages postés
7
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2006

Okay merci ça marche :)
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
20
Grace a ton rgb, tu peux aussi récuperer le vrai nom de la couleur avec

Enum.GetName(typeof(KnownColor), LaCouleur.ToKnownColor())