Changer la propriété BackColor d'un controle avec une couleur perso
cs_Makia
Messages postés26Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention10 août 2010
-
17 oct. 2008 à 19:27
xmox667
Messages postés357Date d'inscriptionjeudi 8 juin 2006StatutMembreDernière intervention26 décembre 2011
-
20 oct. 2008 à 13:17
Bonjour à tous et voici mon souci ^^
J'ai une application qui récupère en permanence la couleur que pointe la souris ( il en ressort un objet de type Color) , je souhaiterais afficher la couleur pointée dans un petit cadre.
J'ai voulu changer la couleur de la propriété BackColor d'une PictureBox avec ma couleur perso pour y visualiser la couleur pointée.
MaPictureBox.BackColor = CouleurPerso ;
Mais cela ne fonctionne pas.
Pouvez vous m'aider svp.
cs_Makia
Messages postés26Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention10 août 2010 19 oct. 2008 à 12:01
Qu'est ce que tu appel une couleur valide ?
J'ai fait un petit test avec le BackColor d'un label , et ça donne ça :
Sélection du rouge :
Sélection du jaune :
n du vert :
Comme tu peux le constater les couleurs ne sont pas les bonnes sauf le vert ....
Je ne comprend pas , le backColor fonctionne avec le label et non avec la picturebox.
cs_Makia
Messages postés26Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention10 août 2010 20 oct. 2008 à 08:25
Finalement j'ai trouvé mon erreur , il faut faire une opération sur la couleur
color = Color.FromArgb((int)(pixel & 0x000000FF),
(int)(pixel & 0x0000FF00) >> 8,
(int)(pixel & 0x00FF0000) >> 16);
En faisant ainsi ça me me résous le problème du changement de couleur ainsi que le souci avec le BackColor de ma PictureBox qui ne voulait pas s'afficher .
Bien que mon problème soit réglé , je souhaiterais savoir pourquoi il faut faire cette opération sur la couleur.
Si quelqu'un le sais , ça serais sympa de prendre un peux de temps pour m'expliquer .
xmox667
Messages postés357Date d'inscriptionjeudi 8 juin 2006StatutMembreDernière intervention26 décembre 20114 20 oct. 2008 à 13:17
Salut,
Tu décompose la couleur :
pixel & 0x000000FF : récupère le rouge
pixel & 0x0000FF00 >> 8 : récupère le vert
pixel & 0x00FF0000 >> 16 : récupère le bleu
Comme la valeur d'une primaire couleur est comprise entre 0 - 255
Pour le vert tu décales d'un octet
Pour le bleu tu décales de 2 octets
Sinon tu aurais des valeurs > 255
Une question : Est tu as essayer ceci
color = Color.FromArgb((int) pixel)