3
respostas

Combo Box - Tipos de Contas

Como cargo os items "conta corrente" e "conta poupanca" no combo box tipo de conta? Porque havia aprendido a como cargar instancias de objetos de um array de contas com o for each. Mas neste caso nao sei como fazer.

3 respostas

Oi Janile, tudo bom?

Podemos adicionar qualquer objeto no nosso comboBox =)

ContaPoupanca e ContaCorrente também são objetos, assim como Conta. Segue exemplo:

 private void Form1_Load(object sender, EventArgs e)
        {
            contas = new Conta[3];

            Conta contaDoVictor = new ContaCorrente();
            contaDoVictor.Titular = new Cliente();
            contaDoVictor.Titular.Nome = "Victor";
            contaDoVictor.Numero = 1;
            contas[0] = contaDoVictor;

            Conta contaDoGuilherme = new ContaPoupanca();
            contaDoGuilherme.Titular = new Cliente();
            contaDoGuilherme.Titular.Nome = "Guilherme";
            contaDoGuilherme.Numero = 2;
            contas[1] = contaDoGuilherme;

            Conta contaDoMauricio = new ContaInvestimento();
            contaDoMauricio.Titular = new Cliente();
            contaDoMauricio.Titular.Nome = "Mauricio";
            contaDoMauricio.Numero = 3;
            contas[2] = contaDoMauricio;

            foreach (Conta conta in this.contas)
            {
                comboContas.Items.Add(conta);
                destinoDaTransferencia.Items.Add(conta);
            }
        }

Aqui adicionamos uma ContaCorrente, uma ContaPoupanca e uma ContaInvestimento no nosso array de contas. Depois passamos adicionando todas elas no nosso combo.

Qualquer problema é só falar =)

Abraço e bons estudos.

Olá André, obrigado pela ajuda. Mas essa nao era minha duvida. Adicionar as instancias de objetos ao combo box eu ja entendi. O que o outro exercicio está pedindo é que eu adicione un combo box no formulario de cadastro de contas, no cual uma vez que o usuario ingreso o numero e o titular da conta nos correspondentes textbox, que ele possa selecionar se a conta que vai ser cadastrada é uma conta poupanca ou conta corrente. Minha pergunta é: Como adiciona no combobox TipoDeConta as opcoes "Conta Corrente" e "Conta Poupanca"

Entendo, nesse caso no segundo formulário precisará de um comboBox com as opções Conta Corrente e Conta Poupanca, pegamos o texto selecionado neste comboBox e verificamos se é igual a Conta Corrente. Se for a gente instancia uma Conta Corrente, se não a gente instancia uma Conta Poupanca. Depois disso basta adicionar a conta na lista do Form inicial =)

Segue exemplo:

using Caelum.CaixaEletronico.Modelo.Contas;
using Caelum.CaixaEletronico.Modelo.Usuarios;
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 CaixaEletronico
{
    public partial class CadastroDeContas : Form
    {
        private Form1 aplicacaoPrincipal;

        public CadastroDeContas(Form1 aplicacaoPrincipal) : this()
        {
            this.aplicacaoPrincipal = aplicacaoPrincipal;
        }

        public CadastroDeContas()
        {
            InitializeComponent();
        }

        private void CadastroDeContas_Load(object sender, EventArgs e)
        {
            this.tipoDeConta.Items.Add("Conta Corrente");
            this.tipoDeConta.Items.Add("Conta Poupança");
            this.tipoDeConta.Items.Add("Conta Investimento");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Conta c;
            if (tipoDeConta.Text.Equals("Conta Poupança"))
            {
                c = new ContaPoupanca();
            }
            else if(tipoDeConta.Text.Equals("Conta Corrente"))
            {
                c = new ContaCorrente();
            }
            else
            {
                c = new ContaInvestimento();
            }

            c.Numero = Convert.ToInt32(numeroDaConta.Text);
            c.Titular = new Cliente();
            c.Titular.Nome = titularConta.Text;
            this.aplicacaoPrincipal.AdicionaConta(c);
        }
    }
}

Esse código, e o resto da aplicação com a implementação, você encontra no ultimo exercicio do capitulo.

Espero ter ajudado =)

Qualquer problema é só falar.

Abraço.