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

Messages postés
7
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2006
- - Dernière réponse : yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
- 12 mars 2006 à 19:37
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 :) @++
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
63
3
Merci
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#
*/

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_coq
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
63
3
Merci
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#
*/

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_coq
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
63
0
Merci
Salut,

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

/*
coq
MVP Visual C#
*/
Commenter la réponse de cs_coq
Messages postés
7
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2006
0
Merci
Okay merci c'est bien ça que je cherchez :)
Commenter la réponse de juliendemomaker
Messages postés
7
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2006
0
Merci
Oui j'ai vus merci :)
Commenter la réponse de juliendemomaker
Messages postés
7
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2006
0
Merci
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 ^^)
Commenter la réponse de juliendemomaker
Messages postés
7
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2006
0
Merci
Okay merci ça marche :)
Commenter la réponse de juliendemomaker
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
0
Merci
Grace a ton rgb, tu peux aussi récuperer le vrai nom de la couleur avec

Enum.GetName(typeof(KnownColor), LaCouleur.ToKnownColor())
Commenter la réponse de yann_lo_san