• Sábado 27 de Abril de 2024, 01:16

Autor Tema:  comparar color de texto de usuario con un color en especial  (Leído 1446 veces)

picyo

  • Visitante
comparar color de texto de usuario con un color en especial
« en: Martes 19 de Julio de 2011, 21:10 »
0

hola estoy haciendo la siguiente comparación:
 
Código: C#
  1. ColorDialog DlgColor = new ColorDialog();
  2.                     DlgColor.Color = cajaRespuesta1.ForeColor;
  3.                     if (DlgColor.ShowDialog() == DialogResult.OK)                    {
  4.                         cajaRespuesta1.ForeColor = DlgColor.Color;                        
  5.                         if (cajaRespuesta1.Text == "negro" && cajaRespuesta1.ForeColor == System.Drawing.Color.FromArgb(255, 0, 0, 0))
  6.  
  7.  
El usuario cambia el color del texto de forma manual (  DlgColor.Color = cajaRespuesta1.ForeColor)
he usado la comparacion de System.Drawing.Color.FromArgb(255, 0, 0, 0) ( que es el color negro) ya que haciendo debugg, veo que la propiedad ForeColor  tiene el siguiente formato : "ctCorreccion1.ForeColor   "{Name=WindowText, ARGB=(255, 0, 0, 0)}"   
La unica forma de comparar que se me ha ocurrido ha sido esa, bueno, a parte de la de comparralo con el color negro "directamente" con System.Drawing.Color.Black. Ninguna de las dos formas me ha funcionado .
Creo que me acerco mas a la primera, ya que el debug al menos me da un formato para la creacion del color de 4 parámetros, el alpha, y los 3 colores básicos. El hecho que es que nunca me entra dentro del if, nunca el color es igual y no se como puedo hacerlo. Alguien podría decirme qué hago mal ?
gracias

gerloxxx

  • Miembro MUY activo
  • ***
  • Mensajes: 121
    • Ver Perfil
Re:comparar color de texto de usuario con un color en especial
« Respuesta #1 en: Miércoles 20 de Julio de 2011, 19:29 »
0
Realmente no se bien como se representan los colores, creo que esa es la base para esto... pero observando que cuando conviertes un color a Argb te muestra un numero, use ese numero para comparar quedando algo asi:

cajaRespuesta1.ForeColor.ToArgb() == System.Drawing.Color.FromArgb(255,0,0,0).ToArgb ()

o asi:

cajaRespuesta1.ForeColor.ToArgb().Equals(System.Drawing.Color.FromArgb(255,0,0,0).ToArgb ())

esperemos alguna explicacion de alguien más experimentado, espero te sirva lo que te comento..

saludos

picyo

  • Visitante
Re:comparar color de texto de usuario con un color en especial
« Respuesta #2 en: Miércoles 20 de Julio de 2011, 21:44 »
0
Hola!!
Directamente he cojido la primera de las opciones y... ha ido genial ! Voy a ver si entiendo el procedimiento, además, pero oye, me ha funcionado chapeau! :)
Grácias!