Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Ex2 - Aula 7 - Botão sacar não funciona

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Caixa
{
    public partial class Form1 : Form
    {
        Conta[] contas;




        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            contas = new Conta[2];
            contas[0] = new Conta();
            contas[0].Numero = 10;
            contas[0].Titular = new Cliente();
            contas[0].Titular.Nome = "Paulo";

            contas[1] = new Conta();
            contas[1].Numero = 100;
            contas[1].Titular = new Cliente();
            contas[1].Titular.Nome = "Mario";

            foreach (Conta conta in contas)
            {
            comboContas.Items.Add(conta.Titular.Nome);
            }



        }

        private void comboContas_SelectedIndexChanged(object sender, EventArgs e)
        {
            int indiceSelecionado = comboContas.SelectedIndex;
            Conta contaSelecionada = contas[indiceSelecionado];

            MostraConta();

        }

        private Conta BuscaContaSelecionada()
        {
            int indiceSelecionado = comboContas.SelectedIndex;
            return this.contas[indiceSelecionado];
        }

        private void botaoSacar_Click(object sender, EventArgs e)
        {
            string txtSaque = textoSacar.Text;
            double valorSaque = Convert.ToDouble(txtSaque);
            Conta contaSelecionada = this.BuscaContaSelecionada();
            contaSelecionada.Saca(valorSaque);
            MostraConta();

        }

        private void MostraConta()
        {
            textoTitular.Text = this.contas[comboContas.SelectedIndex].Titular.Nome;
            textoSaldo.Text = Convert.ToString(this.contas[comboContas.SelectedIndex].Saldo);
            textoNumero.Text = Convert.ToString(this.contas[comboContas.SelectedIndex].Numero);
        }

        private void botaoDepositar_Click(object sender, EventArgs e)
        {
            string txtDeposito = valorSD.Text;
            double valorDeposito = Convert.ToDouble(txtDeposito);
            Conta contaSelecionada = this.BuscaContaSelecionada();
            contaSelecionada.Deposita(valorDeposito);
            MostraConta();
        }
    }

}

O botão de sacar não funciona, e não entendo o porque. Tambem tentei usar apenas uma textbox para os dois mas sem sucesso.

meu metodo saca.

        public virtual void Saca(double valor)
        {
            if (this.Tipo == 1)
            { 
            this.Saldo -= valor;
            }
            else if(this.Tipo == 2)
            {
            this.Saldo -= valor + 0.10;
            }
        }
2 respostas

Oi Paulo, o que acontece? O evento não é chamado? Solta algum erro?

solução!

Não está funcionando pois você não definiu um "tipo" para a conta e não tem uma cláusula else no seu if

public virtual void Saca(double valor)
        {
            //if (this.Tipo == 1)
            if (this.Tipo == 2)
            { 
            //this.Saldo -= valor;
            this.Saldo -= valor+0.1;
            }
            //else if(this.Tipo == 2)
            else 
            {
            //this.Saldo -= valor+0.1;
            this.Saldo -= valor;
            }
        }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software