Changer la couleur du backcolor a l aide d un bouton click fixe

Résolu
cs_danyclassique Messages postés 94 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 7 novembre 2010 - 13 avril 2008 à 00:09
cs_danyclassique Messages postés 94 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 7 novembre 2010 - 13 avril 2008 à 16:55
Bonjour a tous .
J ai , dans mon application, un bouton qui permet de choisir une couleur grace au
colordialog puis la couleur choisi est appliquee au backcolor.
Le probleme est que quand je ferme et je reouvre l application les changement
de couleur ne sont pas gardees.

Voici un peut de mon code

private void button1ccb_Click(object sender, EventArgs e)
        {


            Color resultColor = new Color();
            colorDialog1.CustomColors = null;
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                resultColor = colorDialog1.Color;
                this.BackColor = resultColor;
            }
        }
Peut etre que quelqu un connait la solution pour garder les changements d une maniere
definitive?
Merci d avance pour votre aide.

7 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
13 avril 2008 à 16:37
Tu peux serialiser/déserialiser en binaire ou simplement :

Color c = Color.Azure;
// Color vers String :
string color = c.ToArgb( ).ToString( );
// String vers Color :
Color c2 = Color.FromArgb( Int32.Parse( color ) );
1
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
13 avril 2008 à 08:43
Salut, c'est bien normal.. lorsqu'un programme s'execute il est chargé dans la RAM, toutes les modifications, BackColor etc. sont éffectuées en mémoire et une fois le programme terminé tu perds tous les changements apportés. Pour les préserver tu dois les sauvegarder soit dans un fichier, *.config ou *.ini par exemple ou dans la base de registre.
0
cs_danyclassique Messages postés 94 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 7 novembre 2010
13 avril 2008 à 09:42
Salut et merci d avoir repondu.


Oui ,depuis hier je reflechi et j en suis arive a la meme deduction que toi


c est en fait tres logique j aurai du reflecchir un peut plus avant de poser ma question .


Par contre moi j avais pense a un fichier xml mais ton idee me parrait mieux surtout celle du registre ,tu n aurai pas une idee de comment pouvoir y acceder .


Merci a toi.
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
13 avril 2008 à 14:10
J'pense que la meilleure solution, c'est le fichier *.config qui est justement du XML. Si tu développe avec Visual Studio il te suffit de double cliquer sur le fichier Setting dans ta solution pour l'editer. Après dans le code tu accèdes aux éléments du fichier et à la méthode Save via la classe Properties.Setting.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_danyclassique Messages postés 94 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 7 novembre 2010
13 avril 2008 à 14:16
J ai trouve une solution un peut similaire dans un fichier txt
maintenant que j ai ecris ma couleur en string dans un fichier txt
je la lit en streamreader au initializecomponent que je replace dans un
autre string et maintenant j en suis a la recherche de la convertion
de ce string en color pour ensuite faire backcolor = cette couleur converti.
tu connais peut etre cette convertion ,ce qui me permettrai de pas trop
passer mon temps a trop chercher dans mon livre?
0
cs_danyclassique Messages postés 94 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 7 novembre 2010
13 avril 2008 à 16:14
Apres un test de mon idee pas tres granduose  sur le fichier txt ca fonctionne a moitie.
Je m explique dans mon srting de recuperation j ai une chaine du style
color [A=255, R=255, G=128, B=0]
Le probleme c est que quand je fais ensuite ,par exemple pour
colorier le backcolor avec un string s, this.BackColor=Color.FromName(s) ,le BackColor prend bien les valeurs mais il se rajoute un autre objet argb vide a la suite ,j ai pu voir ca en mode breakpoint;
J ai aussi essayer en FromARGB ,mais alors la pour decortiquer mon string c est une autre histoire.
Alors la je t avoue que je  bloc!!!
Je precise que je debute en c# alors je te pris de m excuser si je n est pas l air tes proffessionel
Si tu pouvais m aider ca serai tres sympas car j ai l impresion que je touche au but .

Merci deja pour tout.
0
cs_danyclassique Messages postés 94 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 7 novembre 2010
13 avril 2008 à 16:55
tres bon mais juste a l instant j ai trouve un tuto de coq et de toi


ou vous parliez justement de ca et j ai donc opte pour l option du TypeConverter,bien que je n est pas tout a fait compris son fonctionnement mais ca fonctionne tres bien .


je te remercie infiniment pour ton aide ,et je pense que c est grace a des personnes comme toi et bien d autres que nous les debutants on s ameliorera tres tres vite.


Merci encore


A bientot
0
Rejoignez-nous