Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/12/2008, 12:32
Eien
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
Acceder a la propiedad text de un label desde otras funciones

Hola a todos, en primer lugar no se si el titulo refleja de forma clara mi pregunta, asi que intentare explicarme lo mejor posible.

La verdad es que soy nuevo en el mundo del Visual C#, y tengo una duda que seguramente sera algo basico y fundamental...

Tengo un programa (Calculadora) con un unico formulario en el que ahi un monton de checkbox. En funcion de si estas estan o no seleccionadas, se calculan unos resultados.

Lo que he echo hasta el momento es lo siguiente:

Cada vez que surge un evento "checkbox_CheckedChanged" en cualquiera de los check box, llamo a la funcion "resultado", que esta dentro de una nueva clase "Calculos" de la siguiente manera:

Calculadora.Calculos.resultado(checkbox1.Checked, checkbox2.Checked, etc) -----> calculadora es el namespace, calculos la clase, y rsultado el metodo

Esta funcion calcula 5 resultados, los cuales los quiero mostrar por pantalla cambiando el atributo text de 5 labels diferentes.

El problema es que desde la funcion "resultado" no se como cambiar el atributo text de esos labels. Lo que hago es mandar los resultados de vuelta al programa principal digamos (donde se ejecutan los eventos checkbox_checkedchanged) y desde ahi siq ue puedo modificar los atributos text de los labels.

Sin embago, como ahi unos 20 checkbox, pues tengo que escribir lo mismo 20 veces... Por ello me preguntaba cual era la forma acceder a los atributos de los labels (y por extension, a las demas herramientas y atributos del formulario) desde cualquier punto.

esto es lo que hago para cada uno de los checkbox:

private void ckTFA_CheckedChanged(object sender, EventArgs e)
{
if ((aux1 != 0) & (aux2 != 0))
{
resul = Calculadora.Calculos.resultado(aux1, aux2, ckTFA.Checked, ckDA.Checked, etc (el resto de ck's...);
label8.Text = string.Format("{0:F2}", resul[4]);
label9.Text = string.Format("{0:F2}", resul[3]);
label10.Text = string.Format("{0:F2}", resul[2]);
label11.Text = string.Format("{0:F2}", resul[1]);
label12.Text = string.Format("{0:F2}", resul[0]);
}
else
{
label8.Text = ("0");
label9.Text = ("0");
label10.Text = ("0");
label11.Text = ("0");
label12.Text = ("0");
}
}

Saludos y gracias

Pd: Si me has entendido, es que ya eres un genio! jeje