Primera entrada, primera solución.

+1
0
-1

Este es mi primer post en este diario sobre Ubuntu y, de forma más extensa, sobre Linux y el mundo del software libre. Ahora mismo estoy centrado en C# y mono y últimamente estoy haciendo un programa para mi colegio (ahora ya ex-colegio, no hace ni una semana que me he graduado). En este programa se busca que los alumnos se autoevalúen en distintos aspectos en la asignatura de informática. Hasta ahora se ha estado haciendo con una hoja de Excel, algo que se ve a simple vista es bastante torpe. Por poner un ejemplo, la hoja ocupa más de 200 KB y se ha de tener una por cada grupo. Así, a unos 30 grupos, hace un total de más de 6 MB que se pueden reducir drásticamente mediante el programita que estoy desarrollando.

Para la interfaz gráfica estoy utilizando GTK#. El problema es el siguiente, tengo varios CheckButton (que, como seguramente sabreis si estais un poco metidos en este mundillo, hereda de ToggledButton que a su vez lo hace de Button). Bien, mediante un sistema de máscaras, se variaba un campo de una clase llamada tema. En éste, se almacena en un campo si se ha hecho el apartado de, por ejemplo, teoría o no. El problema es el siguiente: esta variación se llevaba a cabo mediante un método asociado al evento Clicked. Por otra parte, al cambiar de tema, modificaba la propiedad Active de los CheckButtons activados, pero tenía un problema. Inexplicablemente, se variaba el campo donde se guardaban los apartados hechos.
Tras estar buscando durante días mi error lo encontré. El problema estaba en que al variar el campo Active también se llama al método antes mencionado, con sus correspondientes desajustes. Se solucionó creando una variable de forma que, si era uno se variaba el campo que daba el problema y si era cero, no. Así,cuando variaba programáticamente la propiedad Active sólo tenía que variar ese campo para que no se modificase la puntuación.

Espero que esto le sirva de ayuda a alguien.

Un saludo,

Serabe