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

Dúvida no Ex. 3 da Aula 7 - Mão na Massa - Combo Box

Bom dia pessoal, estou com problema operação de transferência, chequei varias vezes o código e não consigo achar o problema. Alguém poderia ajudar?

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 ProjetoPoo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private Conta conta1;

        private Conta conta2;

        Conta[] contas = new Conta[2];

        private void MostraConta(Conta c)
        {
            textoTitular.Text = c.Titular.Nome;
            textoSaldo.Text = Convert.ToString(c.Saldo);
            textoNumero.Text = Convert.ToString(c.Numero);
        }

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

        private void Form1_Load(object sender, EventArgs e)
        {

            this.conta1 = new Conta();

            this.conta1.Titular = new Cliente("Cássio", 22, "1111111111-43");
            this.conta1.Deposita(100.0);
            this.conta1.Numero = 1;

            this.conta2 = new Conta();

            this.conta2.Titular = new Cliente ("Miguel", 20, "222222222-45");
            this.conta2.Deposita(20000);
            this.conta2.Numero = 2;

            this.contas[0] = conta1;
            this.contas[1] = conta2;

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

            }

        }

//Botão Transfere

        private void button5_Click(object sender, EventArgs e)
    {

            Conta contaSelecionada = this.BuscaContaSelecionada();
            int indiceDaContaDestino = destinoDaTransferencia.SelectedIndex;
            Conta contaDestino = this.contas[indiceDaContaDestino];

            string valorEntrada = textoValor.Text;
            double valorTransferencia = Convert.ToDouble(valorEntrada);

            contaSelecionada.Transfere(valorTransferencia, contaDestino);
    }

//ComboBox 1 e 2

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int i = comboContas.SelectedIndex;
            Conta contaSelecionada = contas[i];
            textoValor.Text = string.Empty;

            textoTitular.Text = contaSelecionada.Titular.Nome;
            textoNumero.Text = Convert.ToString(contaSelecionada.Numero);
            textoSaldo.Text = Convert.ToString(contaSelecionada.Saldo);
        }



        private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e)
        {

        }
4 respostas

Opa Cássio, qual é o problema que vc está tendo?

Olá Cássio.

O erro deve estar no método Transfere(double x, Conta y) da classe Conta. Pode replicar esse seu método aqui para que possamos analisar?

solução!

Opa pessoal, desculpem, eu já entendi o código, na verdade ele só não estava atualizando o saldo da conta por causa do método MostraConta(); que eu esqueci de chamar após a transferência. Obrigado pela ajuda.


//MostraConta

private void MostraConta(Conta c)
        {
            textoTitular.Text = c.Titular.Nome;
            textoSaldo.Text = Convert.ToString(c.Saldo);
            textoNumero.Text = Convert.ToString(c.Numero);
        }

//botão transfere
private void button5_Click(object sender, EventArgs e)
        {

            Conta contaSelecionada = this.BuscaContaSelecionada();
            int indiceDaContaDestino = destinoDaTransferencia.SelectedIndex;
            Conta contaDestino = this.contas[indiceDaContaDestino];

            string valorEntrada = textoValor.Text;
            double valorTransferencia = Convert.ToDouble(valorEntrada);

            contaSelecionada.Transfere(valorTransferencia, contaDestino);

            MostraConta(contaSelecionada); // não estava chamando esse método
        }

Boa :)