private void BTNAGREGAR_Click(object sender, EventArgs e)
        {
            string caso  = null;
            int    index = 0;

            try
            {
                index = LSTCLIENTES.SelectedIndex;
                caso  = LSTCLIENTES.SelectedItem.ToString();
                caso  = caso.Substring(caso.Length - 1);
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Seleccione un Cliente");
            }
            switch (caso)
            {
            case "a":
            {
                Cuenta_Bancaria cuenta = LSTCLIENTES.SelectedItem as Cuenta_Bancaria;
                cuenta.Saldo = cuenta.agregarsaldo(cuenta.Saldo, Convert.ToInt32(NUDAGEX.Value));
                LSTCLIENTES.Items.RemoveAt(index);
                LSTCLIENTES.Items.Insert(index, cuenta);
            }
            break;

            case "e":
            {
                Cuenta_Corriente cuenta = LSTCLIENTES.SelectedItem as Cuenta_Corriente;
                cuenta.Saldo = cuenta.agregarsaldo(cuenta.Saldo, Convert.ToInt32(NUDAGEX.Value));
                LSTCLIENTES.Items.RemoveAt(index);
                LSTCLIENTES.Items.Insert(index, cuenta);
            }
            break;

            case "l":
            {
                Cuenta_Corriente_Especial cuenta = LSTCLIENTES.SelectedItem as Cuenta_Corriente_Especial;
                cuenta.Saldo = cuenta.agregarsaldo(cuenta.Saldo, Convert.ToInt32(NUDAGEX.Value));
                LSTCLIENTES.Items.RemoveAt(index);
                LSTCLIENTES.Items.Insert(index, cuenta);
            }
            break;
            }
        }
        private void BTNVISUALIZAR_Click(object sender, EventArgs e)
        {
            string caso = null;

            try
            {
                caso = LSTCLIENTES.SelectedItem.ToString();
                caso = caso.Substring(caso.Length - 1);
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Seleccione un Cliente");
            }
            switch (caso)
            {
            case "a":
            {
                Cuenta_Bancaria cuenta = LSTCLIENTES.SelectedItem as Cuenta_Bancaria;
                MessageBox.Show(Convert.ToString("El Saldo es: " + cuenta.Saldo));
            }
            break;

            case "e":
            {
                Cuenta_Corriente cuenta = LSTCLIENTES.SelectedItem as Cuenta_Corriente;
                MessageBox.Show(Convert.ToString("El Saldo es: " + cuenta.Saldo));
            }
            break;

            case "l":
            {
                Cuenta_Corriente_Especial cuenta = LSTCLIENTES.SelectedItem as Cuenta_Corriente_Especial;
                MessageBox.Show(Convert.ToString("El Saldo es: " + cuenta.Saldo));
            }
            break;
            }
        }
        private void BTNCREACION_Click(object sender, EventArgs e)
        {
            string  caso = CBOXTIPO.Text;
            Cliente c    = new Cliente();

            c.Cuit     = TXTCUIT.Text;
            c.Nombre   = TXTNOMBRE.Text;
            c.Apellido = TXTAPELLIDO.Text;

            switch (caso)
            {
            case "Cuenta Bancaria":
            {
                try
                {
                    if (NUDDESCUENTO.Value == 0 && NUDPENALIZACION.Value == 0)
                    {
                        Cuenta_Bancaria cuenta = new Cuenta_Bancaria();
                        cuenta.Saldo = Convert.ToInt32(TXTSALDO.Text);
                        cuenta.C     = c;
                        string cadena = string.Concat(cuenta.ToString() + " - " + " Cuenta Bancaria");
                        LSTCLIENTES.Items.Add(cuenta);
                    }
                    else
                    {
                        throw new PenalizacionException();
                    }
                }

                catch (PenalizacionException)
                {
                    MessageBox.Show("No puede crear una cuenta bancaria con Penalizacion o Descubierto");
                }
            }

            break;

            case "Cuenta Corriente":
            {
                try
                {
                    if (NUDPENALIZACION.Value == 0)
                    {
                        Cuenta_Corriente cuenta = new Cuenta_Corriente();
                        cuenta.Saldo       = Convert.ToInt32(TXTSALDO.Text);
                        cuenta.C           = c;
                        cuenta.Descubierto = Convert.ToInt32(NUDDESCUENTO.Value);
                        string cadena = string.Concat(cuenta.ToString() + " - " + " Cuenta Bancaria");
                        LSTCLIENTES.Items.Add(cuenta);
                    }
                    else
                    {
                        throw new PenalizacionException();
                    }
                }

                catch (PenalizacionException)
                {
                    MessageBox.Show("No puede crear una cuenta corriente con Penalizacion");
                }
            }
            break;

            case "Cuenta Corriente Especial":
            {
                Cuenta_Corriente_Especial cuenta = new Cuenta_Corriente_Especial();
                cuenta.Saldo     = Convert.ToInt32(TXTSALDO.Text);
                cuenta.C         = c;
                cuenta.Descuento = Convert.ToInt32(NUDPENALIZACION.Value);
                LSTCLIENTES.Items.Add(cuenta);
            }
            break;
            }
        }
        private void BTNEXTRAER_Click(object sender, EventArgs e)
        {
            string caso  = null;
            int    index = 0;

            try
            {
                index = LSTCLIENTES.SelectedIndex;
                caso  = LSTCLIENTES.SelectedItem.ToString();
                caso  = caso.Substring(caso.Length - 1);
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Seleccione un Cliente");
            }
            switch (caso)
            {
            case "a":
            {
                Cuenta_Bancaria cuenta = LSTCLIENTES.SelectedItem as Cuenta_Bancaria;

                try
                {
                    if (cuenta.Saldo >= NUDAGEX.Value)
                    {
                        cuenta.Saldo = cuenta.quitarsaldo(cuenta.Saldo, Convert.ToInt32(NUDAGEX.Value));
                        LSTCLIENTES.Items.RemoveAt(index);
                        LSTCLIENTES.Items.Insert(index, cuenta);
                    }
                    else
                    {
                        throw new ExtraccionNoValida();
                    }
                }
                catch (ExtraccionNoValida)
                {
                    MessageBox.Show("Ingrese un monto valido, no puede retirar mas de lo que tiene en la cuenta");
                }
            }
            break;

            case "e":
            {
                Cuenta_Corriente cuenta = LSTCLIENTES.SelectedItem as Cuenta_Corriente;
                try
                {
                    if ((cuenta.Saldo + cuenta.Descubierto) >= NUDAGEX.Value)
                    {
                        cuenta.Saldo = cuenta.quitarsaldo(cuenta.Saldo, Convert.ToInt32(NUDAGEX.Value));
                        LSTCLIENTES.Items.RemoveAt(index);
                        LSTCLIENTES.Items.Insert(index, cuenta);
                    }
                    else
                    {
                        throw new ExtraccionNoValida();
                    }
                }
                catch (ExtraccionNoValida)
                {
                    MessageBox.Show("Ingrese un monto valido, no puede retirar mas de lo que permite el descubierto");
                }
            }
            break;

            case "l":
            {
                Cuenta_Corriente_Especial cuenta = LSTCLIENTES.SelectedItem as Cuenta_Corriente_Especial;
                try
                {
                    if ((cuenta.Saldo + cuenta.Descubierto) >= NUDAGEX.Value)
                    {
                        cuenta.Saldo = cuenta.quitarsaldo(cuenta.Saldo, Convert.ToInt32(NUDAGEX.Value), Convert.ToInt32(NUDPENALIZACION.Value));
                        LSTCLIENTES.Items.RemoveAt(index);
                        LSTCLIENTES.Items.Insert(index, cuenta);
                    }
                    else
                    {
                        throw new ExtraccionNoValida();
                    }
                }
                catch (ExtraccionNoValida)
                {
                    MessageBox.Show("Ingrese un monto valido, no puede retirar mas de lo que permite el descubierto (Recuerde tener en cuenta la penalizacion de la cuenta)");
                }
            }
            break;
            }
        }