Cambio de color de label

Iniciado por Jero67, 26 Septiembre 2011, 19:52 PM

0 Miembros y 2 Visitantes están viendo este tema.

Jero67

Hola a todos.

No he visto ningun subforo de presentaciones, y como este subforo es el que mas voy a usar pues me presento aquí  :rolleyes:

Estoy empezando con C# y de momento me voy aclarando, aunque poco a poco, con lo que quiero hacer, pero me encuentro con que no se como plantearme esto:

Al hacer click en un label este cambia sus propiedades de colores con el codigo que pongo mas abajo, pero lo que quiero hacer es poder desmarcar la opcion al hacer de nuevo click sobre el mismo label y esto la verdad es que no tengo ni idea como plantearlo, si me podeis encaminar al planteamiento os lo agradecería.

         List <int> SeleccionDeOpcion = new List <int>();

        private void label1_Click(object sender, EventArgs e)
        {
            label1.ForeColor = Color.White;
            label1.BackColor = Color.Red;
            SeleccionDeOpcion.Add(01);
        }

Keyen Night

Realmente no entendi, lo poco que entendi es que tu quieres que al darl Click a un label se ponga verde y al darle de nuevo se ponga rojo y viceversa?
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

criskapunk

No estoy seguro, peeeeero... puede ser esto?

Código (csharp) [Seleccionar]
        private void label1_Click(object sender, EventArgs e)
        {
            label1.BackColor = Color.Red;
            label1.Enabled = false;
        }


Un saludo.

Keyen Night

Aún no terminas de decir que es lo que quieres :-X
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

Jero67

Ok, parece que no me he explicado bien, a ver si a hora lo hago mejor  :laugh:

Tengo varios label con el BackColor=Green

Si pulso una vez quiero que se ponga el BackColor=Red
Y si pulso una segunda vez se tiene que volver a BackColor=Green


Cita de: Keyen Night en 27 Septiembre 2011, 01:58 AM
Realmente no entendi, lo poco que entendi es que tu quieres que al darl Click a un label se ponga verde y al darle de nuevo se ponga rojo y viceversa?

Exactamente tal y como dices Keyen Night

Jero67

Ya lo tengo, simplemente con un IF lo he solucionado  :silbar:

List <int> SeleccionDeOpcion = new List <int>();
       bool activado = true;

       private void label1_Click(object sender, EventArgs e)
       {
           if (activado)
           {
               label1.ForeColor = Color.White;
               label1.BackColor = Color.Red;
               SeleccionDeOpcion.Add(01);
               activado = false;
           }
           else
           {
               label1.ForeColor = Color.Black;
               label1.BackColor = Color.GreenYellow;
               
               activado = true;
           }
       }


Gracias de todas formas

.mokk.

Cita de: Jero67 en 27 Septiembre 2011, 12:52 PM
Ya lo tengo, simplemente con un IF lo he solucionado  :silbar:

List <int> SeleccionDeOpcion = new List <int>();
       bool activado = true;

       private void label1_Click(object sender, EventArgs e)
       {
           if (activado)
           {
               label1.ForeColor = Color.White;
               label1.BackColor = Color.Red;
               SeleccionDeOpcion.Add(01);
               activado = false;
           }
           else
           {
               label1.ForeColor = Color.Black;
               label1.BackColor = Color.GreenYellow;
               
               activado = true;
           }
       }


Gracias de todas formas

Muy bien aunque a mi parecer es mejor utilizar no tantas variables osea en vez de usar una variable booleana, podemos usar el propio label para comprobar, simplemente checamos que color tenemos en el y ya si tiene tal colo hace tal cosa sino hace la otra, bueno yo preferentemente intento usar siempre la menor cantidad de variables jeje o si lo hago comentarlas porque luego se me olvida para que es cada una xD

Jero67

Gracias .mokk. probaré como dices así voy viendo mas opciones  ;-)

criskapunk

Algo así:

Código (csharp) [Seleccionar]
        private void label1_Click(object sender, EventArgs e)
        {
            if (label1.BackColor != Color.Green)
            {
                label1.BackColor = Color.Green;
            }
            else
            {
                label1.BackColor = Color.Red;
            }
        }


Un saludo.

s00rk

Cita de: R0LFback en 29 Septiembre 2011, 03:12 AM
Algo así:

Código (csharp) [Seleccionar]
        private void label1_Click(object sender, EventArgs e)
        {
            if (label1.BackColor != Color.Green)
            {
                label1.BackColor = Color.Green;
            }
            else
            {
                label1.BackColor = Color.Red;
            }
        }


Un saludo.

Si jeje yo prefiero asi porque me ahorro mas variables jeje, ya solo uso cuando ahora si ya no creo que no hay otra salida(aunque siempre hay diferentes formas, pero no me doy cuenta hasta despues de un tiempo xD).