Meu codigo está executar sem nenhum erro, o problema é quando adiciono uma conta e vou ver no comboBox da Form1, no lugar do nome do Titular aparece "WindowsFormsApplication3.ContaCorrente" e se seleciono essa opção um erro "Exception thrown: 'System.NullReferenceException' in WindowsFormsApplication3.exe
Additional information: Referência de objeto não definida para uma instância de um objeto."
Segue ContaCorrete.cs
public partial class CadastroDeConta : Form
{
private Form1 aplicacaoPrincipal;
public CadastroDeConta(Form1 aplicacaoPrincipal)
{
this.aplicacaoPrincipal = aplicacaoPrincipal;
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Conta novaConta = new ContaCorrente();
novaConta.Titular = new Cliente();
novaConta.Titular.Nome = titularConta.Text;
novaConta.Numero = Convert.ToInt32(numeroDaConta.Text);
this.aplicacaoPrincipal.AdicionaConta(novaConta);
}
}
Form1.cs
public partial class Form1 : Form
{
private Conta [] conta;
public Form1()
{
InitializeComponent();
}
private void MostraConta(int indice)
{
textoTitular1.Text = conta[indice].Titular.Nome;
textoNumero.Text = Convert.ToString(conta[indice].Numero);
textoSaldo.Text = Convert.ToString(conta[indice].Saldo);
}
private void Form1_Load(object sender, EventArgs e)
{
this.conta = new Conta[10];
this.conta[0] = new Conta();
this.conta[0].Titular = new Cliente();
this.conta[0].Titular.Nome = "Victor";
this.conta[0].Numero = 123;
this.conta[0].Deposita(200);
this.conta[1] = new Conta();
this.conta[1].Titular = new Cliente();
this.conta[1].Titular.Nome = "João";
this.conta[1].Numero = 456;
this.conta[1].Deposita(1000);
foreach (Conta contas in conta)
{
if (contas != null)
{
comboContas.Items.Add(contas.Titular.Nome);
destinoDaTransferencia.Items.Add(contas.Titular.Nome);
}
}
GerenciadorDeImposto gerenciador = new GerenciadorDeImposto();
ContaPoupanca cp = new ContaPoupanca();
SeguroDeVida sv = new SeguroDeVida();
gerenciador.Adiciona(cp);
gerenciador.Adiciona(sv);
MessageBox.Show("Total: " + gerenciador.Total);
}
private void button1_Click(object sender, EventArgs e)
{
double valor = Convert.ToDouble(textoValor.Text);
int indiceSelecionado = comboContas.SelectedIndex;
this.conta[indiceSelecionado].Deposita(valor);
this.MostraConta(indiceSelecionado);
}
private void button2_Click(object sender, EventArgs e)
{
double valor = Convert.ToDouble(textoValor.Text);
int indiceSelecionado = comboContas.SelectedIndex;
this.conta[indiceSelecionado].Saca(valor);
this.MostraConta(indiceSelecionado);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int indiceSelecionado = comboContas.SelectedIndex;
this.MostraConta(indiceSelecionado);
}
private void Transferencia_Click(object sender, EventArgs e)
{
this.conta[comboContas.SelectedIndex].Saca(50);
this.conta[destinoDaTransferencia.SelectedIndex].Deposita(50);
this.MostraConta(comboContas.SelectedIndex);
}
private int quantidadeDeContas;
public void AdicionaConta(Conta contas)
{
this.conta[this.quantidadeDeContas] = contas;
this.quantidadeDeContas++;
comboContas.Items.Add(contas);
}
private void button3_Click(object sender, EventArgs e)
{
CadastroDeConta formularioDeConta = new CadastroDeConta(this);
formularioDeConta.ShowDialog();
}
}