• Domingo 22 de Diciembre de 2024, 14:50

Autor Tema:  Opacidad en un form con dos botones "+" y "-"  (Leído 1728 veces)

danielbmz

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Opacidad en un form con dos botones "+" y "-"
« en: Viernes 19 de Julio de 2013, 00:02 »
0
Muy buenas pues en la aplicacion tengo dos botones "+" y "-"
y no consigo aumentar y disminuir la opacidad de la aplicacion, en el boton "+" ni en el "-" tengo este codigo que deberia ir aumentando pero no logro que aumente a cada click, soy algo malo en programacion.

private void btnmas_Click(object sender, EventArgs e)
{
double x = .5;
this.Opacity = (x++);
}

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:Opacidad en un form con dos botones "+" y "-"
« Respuesta #1 en: Viernes 19 de Julio de 2013, 05:20 »
0
Hola danielbmz bienvenido al foro.

Me parece que estas confundiendo como funciona la propiedad Opacity.

Opacity contiene un numero que representa un porcentaje de opacidad, siendo 0 (0 %) completamente transparente, y 1.0 (100%) completamente opaco.

Entonces en lugar de incrementar/decrementar en intervalos de 0.5, seria mas correcto incrementar en intervalos de 0.1 (10%), y nunca sobrepasar el 1.0 (100%)

Te dejo un codigo de como lo haria yo en intervalos de 10%, y nunca una opacidad menor al 50% (0.5), ya que en mi caso menos del 50% practicamente ya no se ve el formulario, sin embargo, puedes probarlo con valores menor al 50% si lo deseas.

Utilizo un switch con valores enteros ya que:
1. si utilizas if, y comparas valores de tipo double, habra errores de redondeo y es probable que no incrementes/decrementes correctamente.

2. El switch no admite valores de tipo double.

Código: [Seleccionar]
    public partial class Form1 : Form
    {

        int opaco = 5;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (opaco != 0)
                opaco--;
            switch (opaco)
            {
                case 4: this.Opacity = 0.9;
                    break;
                case 3: this.Opacity = 0.8;
                    break;
                case 2 : this.Opacity = 0.7;
                    break;
                case 1 : this.Opacity = 0.6;
                    break;
                case 0 : this.Opacity = 0.5;
                    break;
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (opaco != 5)
                opaco++;
            switch (opaco)
            {
                case 5: this.Opacity = 1.0;
                    break;
                case 4: this.Opacity = 0.9;
                    break;
                case 3: this.Opacity = 0.8;
                    break;
                case 2: this.Opacity = 0.7;
                    break;
                case 1: this.Opacity = 0.6;
                    break;
            }
        }

    }

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================