/// <summary>
        /// Restore the size, state and location that were saved for a form
        /// </summary>
        /// <param name="form">The form whose properties are to be restored</param>
        public static void RecuperarUbicacionVentana(Form form)
        {
            try
            {
                int codigoTamPantallaActual = ObtenerCodigoTamPantalla();

                ColeccionUbicaciones cu = Deserializar(Properties.Settings.Default.UbicacionesFormulariosSerializadas);
                if (cu != null)
                {
                    string name            = ObtenerNombreVentana(form);
                    UbicacionFormulario uf = (from f in cu where f.Nombre == name && f.CodigoTamVentana == codigoTamPantallaActual select f).FirstOrDefault();
                    if (uf != null)
                    {
                        if (uf.EstaMaximizado)
                        {
                            form.WindowState = FormWindowState.Maximized;
                        }
                        else
                        {
                            form.Size     = uf.Size;
                            form.Location = uf.Location;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// Salvar el tamaño, estado y ubicación de un Form
        /// </summary>
        public static void SalvarUbicacionVentana(Form formulario)
        {
            try
            {
                int codigoTamPantallaActual = ObtenerCodigoTamPantalla();

                ColeccionUbicaciones cu = Deserializar(Properties.Settings.Default.UbicacionesFormulariosSerializadas) ?? new ColeccionUbicaciones();
                UbicacionFormulario  uf = new UbicacionFormulario();
                uf.CodigoTamVentana = codigoTamPantallaActual;
                uf.EstaMaximizado   = formulario.WindowState == FormWindowState.Maximized;
                if (!uf.EstaMaximizado)
                {
                    uf.Size     = formulario.Size;
                    uf.Location = formulario.Location;
                }

                string name = ObtenerNombreVentana(formulario);
                uf.Nombre = name;

                // Obtener ubicaciones distintas de la actual
                ColeccionUbicaciones cuNueva = new ColeccionUbicaciones(from f in cu where f.Nombre != name || f.CodigoTamVentana != codigoTamPantallaActual select f);

                // Agregar la actual a la coleccion
                cuNueva.Add(uf);

                // Salvar la nueva coleccion
                Properties.Settings.Default.UbicacionesFormulariosSerializadas = Serializar(cuNueva);
                Properties.Settings.Default.Save();
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }