void Agregar_Usuario()
        {
            DateTime hoy = DateTime.Today;

            if (string.IsNullOrWhiteSpace(txtUsuario.Text) ||
                string.IsNullOrWhiteSpace(txtNombres.Text) ||
                string.IsNullOrWhiteSpace(txtApellidos.Text) ||
                string.IsNullOrWhiteSpace(txtCorreo.Text) ||
                string.IsNullOrWhiteSpace(dtNacimiento.Text))
            {
                MessageBox.Show("No se puede almacenar la información debido que algunos campos estan vacíos.", "Campos vacíos", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (dtNacimiento.Value.Date >= hoy)
            {
                MessageBox.Show("La fecha de nacimiento proporcionada no puede ser igual o mayor a la fecha actual.", "Error en fecha de nacimiento", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (maskDui.Text.Trim() == "-" && txtCarne.Text.Trim() == "")
            {
                MessageBox.Show("Brinde un documento de identificación, recuerde que puede proporcionar su numero de DUI o número de carné en caso de ser un estudiante.", "Documento faltante", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (dtNacimiento.Value.AddYears(18) > hoy && maskDui.Text.Trim() != "-")
            {
                MessageBox.Show("Usted ha proporcionado un numero de dui siendo menor de edad, verifique que los datos sean correctos", "Fecha de nacimiento incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (pbFoto.Image == null)
            {
                MessageBox.Show("Debes cargar una fotografia en el perfil del usuario.", "Datos faltantes", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                Constructor_Usuario reg = new Constructor_Usuario();
                reg.usuario = txtUsuario.Text;
                string clave = Validaciones.md5(txtUsuario.Text + "primeruso");
                //MessageBox.Show(clave);
                reg.clave     = clave;
                reg.nombres   = txtNombres.Text;
                reg.apellidos = txtApellidos.Text;
                if (radCarne.Checked == true)
                {
                    radDui.Checked = false;
                    maskDui.Clear();
                    reg.documento = txtCarne.Text;
                }
                else if (radDui.Checked == true)
                {
                    radCarne.Checked = false;
                    txtCarne.Clear();
                    reg.documento = maskDui.Text;
                }
                reg.nacimiento      = dtNacimiento.Text;
                reg.email           = txtCorreo.Text;
                reg.intentos        = 0;
                reg.id_empresa      = Convert.ToInt16(cmbEmpresa.SelectedValue);
                reg.id_estado       = Convert.ToInt16(cmbEstado.SelectedValue);
                reg.id_tipo_usuario = Convert.ToInt16(cmbTipoUsuario.SelectedValue);
                MemoryStream ms = new MemoryStream();
                pbFoto.Image.Save(ms, ImageFormat.Jpeg);
                byte[] aByte   = ms.ToArray();
                string decoded = Convert.ToBase64String(aByte);
                reg.imagen = decoded;
                int datos = ControlUsuarios_Modelo.Ingresar_Usuario(reg);
                if (datos >= 1)
                {
                    LimpiarCampos();
                }
            }
        }
        void Registrar_Usuario()
        {
            DateTime hoy = DateTime.Today;

            if (txtNombres.Text.Trim() == "" ||
                txtApellidos.Text.Trim() == "" ||
                maskDui.Text.Trim() == "" && txtCarne.Text.Trim() == "" ||
                txtUsuario.Text.Trim() == "" ||
                txtEmail.Text == "" ||
                txtClave.Text.Trim() == "" ||
                txtConfClave.Text.Trim() == "")
            {
                MessageBox.Show("Algunos campos están vacíos.", "Datos faltantes", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (pbFoto.Image == null)
            {
                MessageBox.Show("Ha faltado cargar una foto al perfil del nuevo usuario", "Foto faltante", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (txtClave.Text != txtConfClave.Text)
            {
                MessageBox.Show("Las claves no coinciden, vuelva a ingresarlas", "Claves no coinciden", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txtClave.Clear();
                txtConfClave.Clear();
            }
            else if (Convert.ToInt16(cmbPregunta1.SelectedValue) == Convert.ToInt16(cmbPregunta2.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta1.SelectedValue) == Convert.ToInt16(cmbPregunta3.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta1.SelectedValue) == Convert.ToInt16(cmbPregunta4.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta2.SelectedValue) == Convert.ToInt16(cmbPregunta3.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta2.SelectedValue) == Convert.ToInt16(cmbPregunta4.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta3.SelectedValue) == Convert.ToInt16(cmbPregunta4.SelectedValue))
            {
                MessageBox.Show("Verique que ha seleccionado y respondido a preguntas diferentes, no esta permitido responder dos veces a la misma pregunta.", "Verificación de pregunta", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (dtNacimiento.Value.Date >= hoy)
            {
                MessageBox.Show("Verifique la fecha seleccionada, ya que es igual o pertenece a una fecha futura", "Error en fecha de nacimiento", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                Constructor_Usuario user = new Constructor_Usuario();
                user.usuario   = txtUsuario.Text;
                user.clave     = Validaciones.md5(txtConfClave.Text);
                user.nombres   = txtNombres.Text;
                user.apellidos = txtApellidos.Text;
                if (radCarne.Checked == true)
                {
                    user.documento = txtCarne.Text;
                }
                else if (radDui.Checked == true)
                {
                    user.documento = maskDui.Text;
                }
                user.nacimiento      = dtNacimiento.Text;
                user.email           = txtEmail.Text;
                user.intentos        = 0;
                user.id_empresa      = Convert.ToInt16(cmbEmpresa.SelectedValue);
                user.id_estado       = Convert.ToInt16(cmbEstado.SelectedValue);
                user.id_tipo_usuario = Convert.ToInt16(cmbTipoUsuario.SelectedValue);
                MemoryStream ms = new MemoryStream();
                pbFoto.Image.Save(ms, ImageFormat.Jpeg);
                byte[] aByte   = ms.ToArray();
                string encoded = Convert.ToBase64String(aByte);
                user.imagen = encoded;
                int datos = ControlUsuarios_Modelo.Ingresar_Usuario(user);
                if (datos >= 1)
                {
                    ControlUsuarios_Modelo.Buscar_usuario(txtUsuario.Text);
                    txtId.Text = Constructor_Usuario.id_usuario.ToString();
                    Constructor_Respuestas res = new Constructor_Respuestas();
                    for (int i = 0; i < 4; i++)
                    {
                        switch (i)
                        {
                        case 0:
                            res.respuesta   = Validaciones.md5(txtRespuesta1.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta1.SelectedValue);
                            int res1 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        case 1:
                            res.respuesta   = Validaciones.md5(txtRespuesta2.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta2.SelectedValue);
                            int res2 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        case 2:
                            res.respuesta   = Validaciones.md5(txtRespuesta3.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta3.SelectedValue);
                            int res3 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        case 3:
                            res.respuesta   = Validaciones.md5(txtRespuesta4.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta4.SelectedValue);
                            int res4 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        default:
                            break;
                        }
                    }
                    MessageBox.Show("Hemos finalizado con la configuración inicial, en este momento te mostrare el Inicio de Sesión para que escribas las credenciales del usuario que acabas de crear.", "Proceso finalizado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    FrmLogin log = new FrmLogin();
                    log.Show();
                    this.Close();
                }
            }
        }