SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: danielbmz en Viernes 19 de Julio de 2013, 00:02
-
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++);
}
-
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.
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 :)