Manejar valores de configuración.

23. March 2008 02:58 by Oscar.SS in Desarrollo Windows  //  Tags:   //   Comments (0)

¿Qué son los valores de configuración?. Supongamos una aplicación de tipo Windows (Windows Applications) donde el usuario tiene la opción de establecer el tamaño de la ventana de nuestra aplicación. Bien, puede interesar que la próxima vez que se ejecute la aplicación, esta,” recuerde” el tamaño de la ventana que estableció el usuario la última vez. Incluso puede interesar que la “recuerde” para un usuario en concreto.

Esto son los valores de configuración. Todas aquellas propiedades de nuestra aplicación (formularios y controles) que deseemos queden registradas para la próxima ejecución del programa.

Los valores de configuración se dividen en dos niveles:

1- Valores de configuración a nivel usuario. Son de lectura y escritura. Pueden ser establecidos para un usuario en concreto.

2- Valores de configuración a nivel aplicación. Solamente son de lectura. Y son comunes a todos los usuarios de la aplicación.

¿Donde se guardan los valores de configuración?. Quedan registrados en un archivo de nuestro proyecto cuyo nombre es Settings.Designer.cs. Lo cierto es que este archivo pertenece al espacio de nombres “nombre_proyecto.Properties”. Para registrar los valores de configuración utilizaremos el método Save() de la clase Settings que pertenece a este espacio de nombres.

Para ser más exactos podemos decir que la definición de las propiedades de configuración se encuentra en el fichero nombre_proyecto.exe.config, el cual está ubicado en el directorio bin\Debug. Este fichero es de formato XML.

Lo mejor es que pasemos a la acción. Antes de empezar, decir que como siempre, existen diferentes técnicas para hacer lo mismo. Aquí veremos, bajo mi modesta opinión, la que considero más sencilla, clara y funcional.

Comencemos. Esta es una de esas cosas que son fáciles de hacer pero difíciles de explicar. ¡Haber que tal lo hago!.

Descripción del procedimiento general:

1- Definir las propiedades de configuración por medio del IDE de Visual Studio.

2- En el evento Load de nuestro formulario establecemos las propiedades de los controles (o del formulario) asignándole el valor guardado en las “propiedades de configuración”. Ejemplo:

textBox1.BackColor = Properties.Settings.Default.configuracion_color;

3- En el evento FormClosing del formulario guardamos los valores de las propiedades de los controles (o del formulario) en las propiedades de configuración. Seguidamente guardamos estos valores. Ejemplo:

Properties.Settings.Default.configuracion_color = textBox1.BackColor;

Properties.Settings.Default.Save();

En el paso 2 del procedimiento anterior lo que se pretende es que cuando la aplicación se inicie, todas las propiedades de los controles recuperen los valores que están guardos.

En cambio, en el paso 3, lo que se pretende es que todos los cambios que hagamos en nuestra aplicación durante la ejecución del mismo, se guarden en las propiedades de configuración. Evidentemente este paso no tendremos que tenerlo en cuenta cuando trabajemos con valores de configuración a nivel de aplicación. Como se comento antes, estos valores son de solo lectura y por lo tanto no podremos cambiarlos durante la ejecución del programa.

Ahora sí que empezamos…jeje.

Abrimos el editor de Visual Studio con una aplicación Windows (Windows Applications) y creamos una interfaz parecida a esta:

 

 

 

 

Nota: La propiedad PasswordChar del textBox contraseña tiene establecido su valor en “#”.

Una vez creada la interfaz pasamos a definir las propiedades de configuración. Para ello debemos abrir la ventana Propiedades de nuestro proyecto. Hacemos click con el botón secundario del ratón sobre el nombre de nuestro proyecto en el explorador de soluciones. En el menú contextual que aparece elegimos Propiedades.

 



Aunque la forma más rápida de abrir la ventana Propiedades es haciendo doble click sobre el fichero Properties de nuestro proyecto. En la ventana Propiedades elegimos la ficha Configuración. Este es aspecto que tiene esta ficha (ventana):

 

 

 

Expliquemos que cometido tiene cada uno de los campos de esta ventana.

Nombre: es el nombre que tiene nuestra propiedad de configuración. Con este nombre accederemos al valor que contenga por medio del código.

Tipo: tipo de datos que contiene nuestra propiedad de configuración.

Ámbito: Se ha comentado antes. Ámbito de usuario o ámbito de aplicación.

Valor: Valor predeterminado para esta propiedad de configuración (valor de configuración) en concreto.

Rellenamos los campos como se muestra en la siguiente imagen:

 

 

Expliquemos que cometido tiene, para nuestra aplicación en concreto, cada una de las propiedades de configuración que acabamos de definir.

VConfig_Usuario: almacena el nombre del usuario introducido por pantalla.

VConfig_Contraseña: almacena la contraseña del usuario.

VConfig_Recordar: almacena el estado del CheckBox. Si esta seleccionado o no.

Localización_Form: almacena la posición inicial de la ventana cuando se carga, dado que es un valor de configuración a nivel de aplicación, será siempre el mismo valor (450;250) y no podremos cambiarlo.

Tan solo queda escribir el código de nuestra aplicación siguiendo las pautas del procedimiento general descrito anteriormente.

 

namespace Valores_Config
{
    
public partial class Form1 : Form
    {
        
//Defenimos una constante que tiene el mismo valor que el la Propiedad De
        //Configuración VConfig_Recordar establecido en la ficha Configuración de
        //propiedades del proyecto.

        
const bool CheckBox_Inicial = false;

        public 
Form1()
        {
            InitializeComponent()
;
        
}

        
private void Form1_Load(object sender, EventArgs e)
        {
            
//Cuando carga el formulario esteblecemos las propiedades de los controles
            //con los valores guardados en las Propiedades De Configuración.

            
textBox1.Text Properties.Settings.Default.VConfig_Usuario;
            
textBox2.Text Properties.Settings.Default.VConfig_Contraseña;

            
checkBox1.Checked Properties.Settings.Default.VConfig_Recordar;

            this
.Location Properties.Settings.Default.Localizacion_Form;
        
}

        
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            
//Cuando se cierra el formulario comprobamos si el CheckBox esta
            //seleccionado, en ese caso, guardamos las propiedades de los controles
            //TextBox en los Valores De Configuración.

            
if (checkBox1.Checked == true)
            {
                Properties.Settings.Default.VConfig_Usuario 
textBox1.Text;
                
Properties.Settings.Default.VConfig_Contraseña textBox2.Text;
            
}
            
else
            
{
                Properties.Settings.Default.VConfig_Usuario 
= string.Empty;
                
Properties.Settings.Default.VConfig_Contraseña = string.Empty;
            
}

            
//Asignamos el estado del CheckBox en los Valores De Configuración.
            
Properties.Settings.Default.VConfig_Recordar checkBox1.Checked;

            
//Salvamos, almacenamos o guardamos todos los Valores De Configuración.
            
Properties.Settings.Default.Save();
        
}

        
private void Aceptar_Click(object sender, EventArgs e)
        {
            
this.Close();
        
}

        
private void Cancelar_Click(object sender, EventArgs e)
        {
            checkBox1.Checked 
CheckBox_Inicial;
            this
.Close();
        
}

    }
}

 

Para ver los efectos de los valores de configuración podemos ejecutar (F5) nuestra aplicación y mover la ventana de sitio. Cerramos la aplicación y volvemos ejecutarla para comprobar que la ventana siempre aparece en el mismo sitio.

También podemos escribir en los textBox y elegir “Recordar en este equipo”. Pulsamos “Aceptar”. Volvemos a ejecutar la aplicación para comprobar que se han guardado y recuperado todos los cambios efectuados.

 

Recent Comments

Comment RSS

Month List