public void BtnGenerarCopiaDeSeguridad_Click(object sender, EventArgs e)
        {
            using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.Gerentes))
            {
                FormValidarUsuario.ShowDialog();

                if (FormValidarUsuario.DialogResult == DialogResult.OK)
                {
                    using (FrmRutaBackUp FormRutaBackUp = new FrmRutaBackUp())
                    {
                        string InformacionDelError = string.Empty;
                        bool   CreacionCancelada   = false;

                        string Ruta = ClsGenerarBackUps.GenerarBackUp(ref CreacionCancelada, ref InformacionDelError);

                        if (Ruta != string.Empty && InformacionDelError == string.Empty && !CreacionCancelada)
                        {
                            FormRutaBackUp.S_Ruta = Ruta;
                            FormRutaBackUp.ShowDialog();
                        }
                        else if (InformacionDelError != string.Empty)
                        {
                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un error al intentar generar la copia de seguridad");
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else if (!CreacionCancelada)
                        {
                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un error al intentar generar la copia de seguridad");
                            MessageBox.Show($"Ocurrio un error al intentar generar la copia de seguridad", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
        }
        private void DgvDatosUsuarios_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            DataGridView DetectarTipoCasilla = (DataGridView)sender;

            if (e.RowIndex != -1 && !(DetectarTipoCasilla.Columns[e.ColumnIndex] is DataGridViewCheckBoxColumn))
            {
                using (FrmValidarUsuario VerificarDueñoUsuario = new FrmValidarUsuario((int)dgvDatosUsuarios.Rows[e.RowIndex].Cells[(int)ENumColDGVUsuarios.ID_Usuario].Value))
                {
                    if (FrmInicioSesion.ObtenerInstancia().G_ID_UsuarioInicioSesion != (int)ClsPerfiles.EPerfiles.Administrador)
                    {
                        VerificarDueñoUsuario.ShowDialog();
                    }
                    else
                    {
                        VerificarDueñoUsuario.DialogResult = DialogResult.OK;
                    }

                    if (VerificarDueñoUsuario.DialogResult == DialogResult.OK)
                    {
                        using (FrmUsuario FormCargarUsuario = new FrmUsuario((int)dgvDatosUsuarios.Rows[e.RowIndex].Cells[(int)ENumColDGVUsuarios.ID_Usuario].Value, rbnUsuariosActivos.Checked))
                        {
                            FormCargarUsuario.ShowDialog();

                            if (FormCargarUsuario.DialogResult == DialogResult.OK)
                            {
                                string InformacionDelError = string.Empty;

                                ClsUsuarios Usuarios          = new ClsUsuarios();
                                Usuario     ActualizarEdicion = new Usuario();

                                ActualizarEdicion = Usuarios.LeerPorNumero((int)dgvDatosUsuarios.Rows[e.RowIndex].Cells[(int)ENumColDGVUsuarios.ID_Usuario].Value, ClsUsuarios.EUsuarioABuscar.PorID, ref InformacionDelError);

                                if (ActualizarEdicion != null)
                                {
                                    dgvDatosUsuarios.Rows[e.RowIndex].Cells[(int)ENumColDGVUsuarios.ID_Usuario].Value = ActualizarEdicion.ID_Usuario;
                                    dgvDatosUsuarios.Rows[e.RowIndex].Cells[(int)ENumColDGVUsuarios.Nick].Value       = ActualizarEdicion.Nick;
                                    dgvDatosUsuarios.Rows[e.RowIndex].Cells[(int)ENumColDGVUsuarios.Nombre].Value     = ActualizarEdicion.Nombre;
                                    dgvDatosUsuarios.Rows[e.RowIndex].Cells[(int)ENumColDGVUsuarios.Apellido].Value   = ActualizarEdicion.Apellido;
                                    dgvDatosUsuarios.Rows[e.RowIndex].Cells[(int)ENumColDGVUsuarios.Perfil].Value     = ActualizarEdicion.Perfil.Nombre;

                                    dgvDatosUsuarios.Sort(dgvDatosUsuarios.Columns[(int)ENumColDGVUsuarios.Perfil], ListSortDirection.Descending);
                                }
                                else
                                {
                                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }

                                UltimaFilaSeleccionada = -1;
                            }
                        }
                    }
                }
            }
        }
        private void InformacionDelRestaurantetoolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.GerentesSubGerentes))
            {
                FormValidarUsuario.ShowDialog();

                if (FormValidarUsuario.DialogResult == DialogResult.OK)
                {
                    FrmConfiguracion.ObtenerInstancia().BtnEditarInformacionRestaurante_Click(sender, e);
                }
            }
        }
        private void CrearArticuloToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.GerentesSubGerentes))
            {
                FormValidarUsuario.ShowDialog();

                if (FormValidarUsuario.DialogResult == DialogResult.OK)
                {
                    FrmCarta.ObtenerInstancia().BtnCrearArticulo_Click(sender, e);
                }
            }
        }
        private void CrearCategoriaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.GerentesSubGerentes))
            {
                FormValidarUsuario.ShowDialog();

                if (FormValidarUsuario.DialogResult == DialogResult.OK)
                {
                    FrmVerEditarCategorias FormCrearEditarVerCategorias = new FrmVerEditarCategorias();
                    FormCrearEditarVerCategorias.ShowDialog();
                }
            }
        }
Exemplo n.º 6
0
        private void BtnGuardarCambios_Click(object sender, EventArgs e)
        {
            // Comprobar datos correctos
            bool   DatosValidos         = true;
            string RegistroDeErrores    = string.Empty;
            int    AnchoFormInformacion = 100;

            Perfil PerfilSeleccionado = (Perfil)cmbPerfil.SelectedItem;

            txtNick.Text     = txtNick.Text.Trim();
            txtNombre.Text   = txtNombre.Text.Trim();
            txtApellido.Text = txtApellido.Text.Trim();

            if (txtNick.Text.Length < 2)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nick' debe tener como minimo 2 caracteres.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtNombre.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nombre' debe tener un minimo de 3 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtApellido.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Apellido' debe tener un minimo de 3 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtContraseña.Text.Length < 4)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Contraseña' debe tener un minimo de 4 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (VerificarUsuarioRepetido(txtNombre.Text, txtContraseña.Text, ID_Usuario, txtApellido.Text))
            {
                DatosValidos       = false;
                RegistroDeErrores += "Verifique que no exista otro usuario con el mismo nombre y apellido, si no " +
                                     "esta repetido, intente con una contraseña diferente.\r\n\r\n";
                AnchoFormInformacion += 70;
            }

            if (DatosValidos)
            {
                // Si va a ser gerente el nuevo usuario, validarlo
                bool AutorizarEdicion = true;

                //Si el combo esta desalibilitado, significa que el perfil ya era gerente, por lo que no pide confirmacion
                if (PerfilSeleccionado.ID_Perfil == (int)ClsPerfiles.EPerfiles.Gerente && cmbPerfil.Enabled == true)
                {
                    AutorizarEdicion = false;

                    FrmRespuesta RespuestaFormulario = new FrmRespuesta($"¿Esta seguro que desea asignarle el perfil ´Gerente'? Una vez confirmado, no se puede editar el tipo de perfil ni eliminar el usuario (por seguridad, el sistema " +
                                                                        "no permite que personas con este tipo sean eliminadas del sistema).", FrmRespuesta.ETamaño.Pequeño, FrmRespuesta.ETipo.Si_No);

                    if (RespuestaFormulario.DialogResult == DialogResult.Yes)
                    {
                        using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.Gerentes))
                        {
                            FormValidarUsuario.ShowDialog();

                            if (FormValidarUsuario.DialogResult == DialogResult.OK)
                            {
                                AutorizarEdicion = true;
                            }
                        }
                    }
                }

                if (AutorizarEdicion)
                {
                    txtNick.Text     = txtNick.Text.ToUpper();
                    txtNombre.Text   = txtNombre.Text.Substring(0, 1).ToUpper() + txtNombre.Text.Remove(0, 1).ToLower();
                    txtApellido.Text = txtApellido.Text.Substring(0, 1).ToUpper() + txtApellido.Text.Remove(0, 1).ToLower();

                    // Actualizar
                    string InformacionDelError = string.Empty;

                    ClsUsuarios Usuarios          = new ClsUsuarios();
                    Usuario     ActualizarUsuario = new Usuario();

                    ActualizarUsuario.ID_Usuario = ID_Usuario;
                    ActualizarUsuario.Nick       = txtNick.Text;
                    ActualizarUsuario.Nombre     = txtNombre.Text;
                    ActualizarUsuario.Apellido   = txtApellido.Text;
                    ActualizarUsuario.Contraseña = txtContraseña.Text;
                    ActualizarUsuario.ID_Perfil  = PerfilSeleccionado.ID_Perfil;

                    //Mantener el estado del usuario (ya que sin esto, se podria habilitar usuarios sin indicarlo
                    //necesariamente, se activarian al editar uno inactivo y guardar cambios).
                    if (EstadoDelUsuario)
                    {
                        ActualizarUsuario.ID_EstadoUsuario = (int)ClsEstadosUsuarios.EEstadosUsuarios.Activo;
                    }
                    else
                    {
                        ActualizarUsuario.ID_EstadoUsuario = (int)ClsEstadosUsuarios.EEstadosUsuarios.Inactivo;
                    }

                    // Impedir dar categoria gerente a un usuario eliminado
                    if (ActualizarUsuario.ID_EstadoUsuario == (int)ClsEstadosUsuarios.EEstadosUsuarios.Inactivo && PerfilSeleccionado.ID_Perfil == (int)ClsPerfiles.EPerfiles.Gerente)
                    {
                        using (FrmInformacion FormInformacion = new FrmInformacion($"No le puede dar el perfil 'gerente' a un usuario eliminado " +
                                                                                   $"(ya que un gerente no puede estar eliminado).", ClsColores.Blanco, 150, 300))
                        {
                            FormInformacion.ShowDialog();
                        }
                    }
                    else
                    {
                        if (Usuarios.Actualizar(ActualizarUsuario, ref InformacionDelError) != 0)
                        {
                            DialogResult = DialogResult.OK;
                            Close();
                        }
                        else if (InformacionDelError != string.Empty)
                        {
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 350))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
Exemplo n.º 7
0
        private void BtnAceptar_Click(object sender, EventArgs e)
        {
            // Validar los datos.
            bool   DatosValidos         = true;
            string RegistroDeErrores    = string.Empty;
            int    AnchoFormInformacion = 100;

            Perfil PerfilSeleccionado = (Perfil)cmbPerfil.SelectedItem;

            txtNick.Text     = txtNick.Text.Trim();
            txtNombre.Text   = txtNombre.Text.Trim();
            txtApellido.Text = txtApellido.Text.Trim();

            if (txtNick.Text.Length < 2)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nick' debe tener como minimo 2 caracteres.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtNombre.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nombre' debe tener un minimo de 3 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtApellido.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Apellido' debe tener un minimo de 3 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtContraseña.Text.Length < 4)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Contraseña' debe tener un minimo de 4 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (VerificarUsuarioRepetido(txtNombre.Text, txtContraseña.Text, ID_Usuario, txtApellido.Text))
            {
                DatosValidos       = false;
                RegistroDeErrores += "Verifique que no exista otro usuario con el mismo nombre y apellido, si no " +
                                     "esta repetido, intente con una contraseña diferente.\r\n\r\n";
                AnchoFormInformacion += 70;
            }

            if (DatosValidos)
            {
                // Si va a ser gerente el nuevo usuario, validarlo
                bool AutorizarEdicion = true;

                if (PerfilSeleccionado.ID_Perfil == (int)ClsPerfiles.EPerfiles.Gerente)
                {
                    AutorizarEdicion = false;

                    FrmRespuesta RespuestaFormulario = new FrmRespuesta($"¿Esta seguro que desea asignarle el perfil ´Gerente'? Una vez confirmado, no se puede editar el tipo de perfil ni eliminar el usuario (por seguridad, el sistema " +
                                                                        "no permite que personas con este tipo sean eliminadas del sistema).", FrmRespuesta.ETamaño.Pequeño, FrmRespuesta.ETipo.Si_No);

                    if (RespuestaFormulario.DialogResult == DialogResult.Yes)
                    {
                        using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.Gerentes))
                        {
                            FormValidarUsuario.ShowDialog();

                            if (FormValidarUsuario.DialogResult == DialogResult.OK)
                            {
                                AutorizarEdicion = true;
                            }
                        }
                    }
                }

                if (AutorizarEdicion)
                {
                    // Crear usuario
                    txtNick.Text     = txtNick.Text.ToUpper();
                    txtNombre.Text   = txtNombre.Text.Substring(0, 1).ToUpper() + txtNombre.Text.Remove(0, 1).ToLower();
                    txtApellido.Text = txtApellido.Text.Substring(0, 1).ToUpper() + txtApellido.Text.Remove(0, 1).ToLower();

                    string InformacionDelError = string.Empty;

                    ClsUsuarios Usuarios     = new ClsUsuarios();
                    Usuario     CrearUsuario = new Usuario();

                    CrearUsuario.Nick             = txtNick.Text;
                    CrearUsuario.Nombre           = txtNombre.Text;
                    CrearUsuario.Apellido         = txtApellido.Text;
                    CrearUsuario.Contraseña       = txtContraseña.Text;
                    CrearUsuario.ID_EstadoUsuario = (int)ClsEstadosUsuarios.EEstadosUsuarios.Activo;
                    CrearUsuario.ID_Perfil        = PerfilSeleccionado.ID_Perfil;

                    if (Usuarios.Crear(CrearUsuario, ref InformacionDelError) != 0)
                    {
                        DialogResult = DialogResult.OK;
                        Close();
                    }
                    else if (InformacionDelError == string.Empty)
                    {
                        MessageBox.Show("Fallo al crear el usuario", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 350))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
Exemplo n.º 8
0
        private void BtnAgregarRegistro_Click(object sender, EventArgs e)
        {
            txtDetalle.Text = txtDetalle.Text.Trim();

            if (ID_Registro != -1 && txtMonto.Text != string.Empty && txtMonto.Text.Substring(0, 1) != "," && txtMonto.Text.Substring(txtMonto.Text.Length - 1, 1) != ",")
            {
                using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.GerentesSubGerentes))
                {
                    FormValidarUsuario.ShowDialog();

                    if (FormValidarUsuario.DialogResult == DialogResult.OK)
                    {
                        if (txtDetalle.Text != string.Empty)
                        {
                            txtDetalle.Text = txtDetalle.Text.Substring(0, 1).ToUpper() + txtDetalle.Text.Remove(0, 1).ToLower();
                        }

                        string InformacionDelError = string.Empty;

                        ClsCajas Cajas         = new ClsCajas();
                        Caja     CrearRegistro = new Caja();

                        CrearRegistro.Fecha          = DateTime.Today.Date;
                        CrearRegistro.Hora           = TimeSpan.Parse(DateTime.Now.ToString(@"HH\:mm\:ss"));
                        CrearRegistro.Monto          = Convert.ToDouble(txtMonto.Text);
                        CrearRegistro.Detalle        = txtDetalle.Text;
                        CrearRegistro.ID_TipoDeMonto = ID_Registro;
                        CrearRegistro.ID_Pedido      = null;

                        if (ID_Registro == (int)ClsTiposDeMontos.ETiposDeMontos.AperturaCaja)
                        {
                            CrearRegistro.ID_EstadoCaja = (int)ClsEstadosCajas.EEstadosCajas.CajaAbierta;
                        }
                        else
                        {
                            CrearRegistro.ID_EstadoCaja = (int)ClsEstadosCajas.EEstadosCajas.Activo;
                        }

                        CrearRegistro.ID_Usuario = FormValidarUsuario.G_ID_UsuarioQueValido;

                        if (Cajas.Crear(CrearRegistro, ref InformacionDelError) != 0)
                        {
                            if (CrearRegistro.ID_TipoDeMonto == (int)ClsTiposDeMontos.ETiposDeMontos.CierreCaja)
                            {
                                List <Caja> BuscarRegistroCajaAbierta = Cajas.LeerListado(ClsCajas.ETipoListado.CajaAbierta, ref InformacionDelError);

                                if (BuscarRegistroCajaAbierta != null)
                                {
                                    foreach (Caja Elemento in BuscarRegistroCajaAbierta)
                                    {
                                        Elemento.ID_EstadoCaja = (int)ClsEstadosCajas.EEstadosCajas.Activo;

                                        Cajas.Actualizar(Elemento, ref InformacionDelError);
                                    }
                                }
                                else if (InformacionDelError == string.Empty)
                                {
                                    MessageBox.Show("Fallo al listar los montos", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                                else
                                {
                                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                            }

                            DialogResult = DialogResult.OK;
                            Close();
                        }
                        else if (InformacionDelError == string.Empty)
                        {
                            MessageBox.Show($"Fallo al crear el registro en caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion($"Debe cargar un registro con su monto correspondiente (verifique también que no tenga la " +
                                                                           "coma del centavo al principio o al final).", ClsColores.Blanco, 250, 300))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
        /// <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;
                }
            }
        }