private void btnIngresar_Click(object sender, EventArgs e)
        {
            InformacionDeLaExcepcion = ERespuestaBaseDeDatos.SinErrores;
            RespuestaDeSesion        = ERespuestaDelInicio.DatosCorrectos;

            RespuestaDeSesion = ClsInicioSesion.ComparaDatos(txtUsuario.Text.ToLower(), txtContraseña.Text, ref InformacionDeLaExcepcion);

            if (RespuestaDeSesion == ERespuestaDelInicio.DatosCorrectos)
            {
                txtContraseña.UseSystemPasswordChar = false;
                txtUsuario.Text    = TextoVisualUsuario;
                txtContraseña.Text = TextoVisualContraseña;

                Hide();

                FrmPrincipal AbrirFrmPrincipal = new FrmPrincipal();

                AbrirFrmPrincipal.FormClosed += CerrarSesion; //Cuando se cierra el formulario principal, se ejecuta el evento CerrarSesion

                AbrirFrmPrincipal.Show();
            }
            else
            {
                if (InformacionDeLaExcepcion != ERespuestaBaseDeDatos.SinErrores)
                {
                    switch (InformacionDeLaExcepcion)
                    {
                    case ERespuestaBaseDeDatos.ArgumentException:
                        MessageBox.Show($"ArgumentException: La cadena de conexión con la base de datos no " +
                                        $"existe \r\n\r\nContacte con el programador para informar y corregir el " +
                                        $"error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;

                    case ERespuestaBaseDeDatos.SqlException:
                        MessageBox.Show($"SqlException: La sentencia para buscar la información es " +
                                        $"invalida \r\n\r\nContacte con el programador para informar y corregir el " +
                                        $"error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;

                    case ERespuestaBaseDeDatos.Exception:
                        MessageBox.Show($"Exception: Posible error en la consulta \r\n\r\nContacte con el " +
                                        $"programador para informar y corregir el error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }
                }
                else
                {
                    switch (RespuestaDeSesion)
                    {
                    case ERespuestaDelInicio.UsuarioInexistente: { lblMensajeDeError.Text = "Usuario incorrecto"; break; }

                    case ERespuestaDelInicio.ClaveIncorrecta: { lblMensajeDeError.Text = "Contraseña incorrecta"; break; }

                    default: { lblMensajeDeError.Text = "Ocurrio un error inesperado al intentar comparar los datos para validar sesion"; break; }
                    }

                    lblMensajeDeError.Visible = true;
                }
            }
        }
        public static ERespuestaDelInicio ComparaDatos(string _Usuario, string _Contraseña, ref ERespuestaBaseDeDatos InformacionDeLaExcepcion)
        {
            try
            {
                //Leo la Cadena de Conexión directamente porque archivo app.config no reconoce la clase ConfigurationMagagement
                string CadenaDeConexion = ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString;

                //Crear la Conexión a la Base de Datos
                SqlConnection SQLConnection = new SqlConnection(CadenaDeConexion);
                SQLConnection.Open();

                //Crear la sentencia SQL
                string Consulta = "SELECT Nombre,Clave FROM Usuario";

                //Creo un objeto de tipo comando en el que le paso como parametro la consulta y la conexion abierta a la BBDD
                SqlCommand Comando = new SqlCommand(Consulta, SQLConnection);

                //Creo un objeto lector de datos basado en mi objeto "Comando"
                SqlDataReader LectorDeDatos = Comando.ExecuteReader();

                //Recorro lo datos de mi tabla
                while (LectorDeDatos.Read())
                {
                    if (LectorDeDatos["Nombre"].ToString().ToLower() == _Usuario && LectorDeDatos["Clave"].ToString() == _Contraseña)
                    {
                        SQLConnection.Close();
                        return(ERespuestaDelInicio.DatosCorrectos);
                    }

                    if (LectorDeDatos["Nombre"].ToString().ToLower() != _Usuario)
                    {
                        SQLConnection.Close();
                        return(ERespuestaDelInicio.UsuarioInexistente);
                    }

                    if (LectorDeDatos["Clave"].ToString() != _Contraseña)
                    {
                        SQLConnection.Close();
                        return(ERespuestaDelInicio.ClaveIncorrecta);
                    }
                }
            }
            catch (ArgumentException)
            {
                InformacionDeLaExcepcion = ERespuestaBaseDeDatos.ArgumentException;
            }
            catch (SqlException)
            {
                InformacionDeLaExcepcion = ERespuestaBaseDeDatos.SqlException;
            }
            catch (Exception)
            {
                InformacionDeLaExcepcion = ERespuestaBaseDeDatos.Exception;
            }

            return(ERespuestaDelInicio.ErrorBaseDeDatos); //Esto para cambiar el estado inicial de correcto a uno correcto
        }