コード例 #1
0
        /// <summary>
        /// Prepara el objeto de tipo formulario para mostrarlo al usuario (validadndo tambien su autorizacion)
        /// </summary>
        /// <param name="_FormMostrar">Formulario que se mostrara.</param>
        /// <param name="_Boton">Propiedades del evento que llamó al metodo.</param>
        /// <param name="_SubBoton">Obtiene el boton del submenu que llamo al evento.</param>
        private void PreparaFormParaMostrar(Form _FormMostrar, object _Boton, object _SubBoton = null)
        {
            // 'AccesoAutorizado' determinara si el usuario ingreso una contraseña valida, si intento abrir un Form critico.
            bool AccesoAutorizado = true;

            // 'FormAccesoEspecialAbierto = true' le indicara al reloj, que debe incrementar la variable 'MinutosInactivos', para ocultar
            // el Form si este se mantuvo en pantalla por mas del tiempo indicado por el usuario, por defecto esta indicado que no se aumente, hasta
            // que detecte que se intenta abrir un Form critico
            FormAccesoEspecialAbierto = false;

            // Preguntar si el formulario que quiere abrir es critico.
            if (_FormMostrar == FrmCaja.ObtenerInstancia() || _FormMostrar == FrmConfiguracion.ObtenerInstancia() || _FormMostrar == FrmCarta.ObtenerInstancia() || _FormMostrar == FrmStock.ObtenerInstancia() || _FormMostrar == FrmEstadisticasCaja.ObtenerInstancia())
            {
                // En caso afirmativo, se pregunta si ya esta abierta para no volver a pedir contraseña (se resetea si cambia el
                // formulario o supera el limite de uno de estos activos).
                if (_FormMostrar != UltimoFormAbierto)
                {
                    using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.GerentesSubGerentes))
                    {
                        // Le doy foco a otro control para evitar el borde blanco en el boton.
                        pnlContDeFrmsSecundarios.Select();

                        FormValidarUsuario.ShowDialog();

                        if (FormValidarUsuario.DialogResult == DialogResult.OK)
                        {
                            FormAccesoEspecialAbierto = true;
                            MinutosTranscurridos      = 0;
                        }
                        else
                        {
                            AccesoAutorizado = false;
                        }
                    }
                }
            }

            // If para evitar ejecutar repetidamente la carga de un formulario, si el que quiere abrir, ya esta en pantalla,
            // e impedir abrir los formularios especiales si no ingreso los datos de seguridad en forma correcta.
            if (_FormMostrar != UltimoFormAbierto && AccesoAutorizado)
            {
                SeleccionarBotonFormCritico((Button)_Boton);
                if (_SubBoton != null && BotonSubmenuPresionado != null || ((Button)_Boton).Name == btnEstadisticas.Name)
                {
                    SeleccionarBotonFormCritico((Button)_SubBoton);
                }

                // Ocultar form viejo.
                if (UltimoFormAbierto != null)
                {
                    UltimoFormAbierto.Hide();
                    pnlContDeFrmsSecundarios.Controls.Remove(UltimoFormAbierto);
                }

                if (BotonPresionado != null && BotonPresionado != (Button)_Boton)
                {
                    BotonEnEstadoOriginal(BotonPresionado);
                }                                                                                                             // Deseleccionar boton viejo.
                if (BotonSubmenuPresionado != null)
                {
                    BotonEnEstadoOriginal(BotonSubmenuPresionado);
                }

                MinutosTranscurridos = 0;

                BotonPresionado = (Button)_Boton; //Esto evitara que los eventos move y leave le cambien el estilo al boton en el codigo de estilo.

                if (_SubBoton != null)
                {
                    BotonSubmenuPresionado = (Button)_SubBoton;
                }
                else
                {
                    BotonSubmenuPresionado = null;
                }

                _FormMostrar.TopLevel        = false;
                _FormMostrar.Dock            = DockStyle.Fill;
                _FormMostrar.FormBorderStyle = FormBorderStyle.None;
                pnlContDeFrmsSecundarios.Controls.Add(_FormMostrar);

                _FormMostrar.Show();

                UltimoFormAbierto = _FormMostrar;

                if (BotonPresionado.Name != btnEstadisticas.Name && pnlContBotonesEstadisticas.Height == MEDIDA_ESTADISTICA_MENU_EXPANDIDO)
                {
                    // El cambio de la propiedad visible evita un bug visual de la scrollbar
                    pnlContBotonesMenu.Visible = false;

                    pnlContBotonesEstadisticas.Height = MEDIDA_ESTADISTICA_MENU_CONTRAIDO;
                    pnlSeparadorEstadisticas.Visible  = false;

                    pnlContBotonesMenu.Visible = true;
                }
            }
        }
コード例 #2
0
 private void BtnEstadisticasMesas_Click(object sender, EventArgs e) => PreparaFormParaMostrar(FrmEstadisticasCaja.ObtenerInstancia(), btnEstadisticas, sender);