Não estou conseguindo resolver este exercício nem com o modelo que se encontra na parte de solução... Estou tendo dificuldade de retornar os valores digitados no textbox para o programa principal, sempre da erro(Referência de objeto não definida para uma instância de um objeto.).
public partial class Form1 : Form
{
private Contas[] ArrayContas;
private int numeroDeContas;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ArrayContas = new Contas[3];
ArrayContas[0] = new ContasCorrente();
Clientes Cliente0 = new Clientes("Robinson");
ArrayContas[0].Cliente = Cliente0;
ArrayContas[1] = new ContasCorrente();
Clientes Cliente1 = new Clientes("Victor");
ArrayContas[1].Cliente = Cliente1;
ArrayContas[2] = new ContasCorrente();
Clientes Cliente2 = new Clientes("Mario");
ArrayContas[2].Cliente = Cliente2;
for (int i = 0; i < 3; i++)
{
ArrayContas[i].Numero = i;
}
foreach (Contas contas in ArrayContas)
{
comboTitular.Items.Add(contas.Cliente.Titular);
}
foreach (Contas contas in ArrayContas)
{
comboDestidoDaTransferencia.Items.Add(contas.Cliente.Titular);
}
}
private void comboTitular_SelectedIndexChanged(object sender, EventArgs e)
{
int indiceSelecionado = comboTitular.SelectedIndex;
Contas contaSelecionada = this.ArrayContas[indiceSelecionado];
textTitular.Text = contaSelecionada.Cliente.Titular;
textNumero.Text = Convert.ToString(contaSelecionada.Numero);
textSaldo.Text = Convert.ToString(contaSelecionada.Saldo);
}
private void buttonSaque_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(textNumero.Text);
ArrayContas[i].Saque(Convert.ToDouble(textValorSaque.Text));
textSaldo.Text = Convert.ToString(ArrayContas[i].Saldo);
}
private void buttonDeposito_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(textNumero.Text);
ArrayContas[i].Deposito(Convert.ToDouble(textValorDeposito.Text));
textSaldo.Text = Convert.ToString(ArrayContas[i].Saldo);
}
private void buttonTransferencia_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(textNumero.Text);
int j = Convert.ToInt32(textNumeroTransferencia.Text);
ArrayContas[i].Transferencia(Convert.ToDouble(textValorTransferencia.Text), ArrayContas[i], ArrayContas[j]);
textSaldo.Text = Convert.ToString(ArrayContas[i].Saldo);
textSaldoTransferencia.Text = Convert.ToString(ArrayContas[j].Saldo);
}
private void comboDestidoDaTransferencia_SelectedIndexChanged(object sender, EventArgs e)
{
int indiceSelecionado = comboDestidoDaTransferencia.SelectedIndex;
Contas contaSelecionada = this.ArrayContas[indiceSelecionado];
textTitularTransferencia.Text = contaSelecionada.Cliente.Titular;
textNumeroTransferencia.Text = Convert.ToString(contaSelecionada.Numero);
textSaldoTransferencia.Text = Convert.ToString(contaSelecionada.Saldo);
}
private void buttonAdicionarConta_Click(object sender, EventArgs e)
{
CadastroDeConta cadastro = new CadastroDeConta();
cadastro.ShowDialog();
}
public void AdicionaConta(Contas c)
{
this.ArrayContas[this.numeroDeContas] = c;
this.numeroDeContas++;
comboTitular.Items.Add(c);
}
}
public partial class CadastroDeConta : Form
{
private Form1 aplicacaoPrincipal;
public CadastroDeConta(Form1 aplicacaoPrincipal)
{
this.aplicacaoPrincipal = aplicacaoPrincipal;
}
public CadastroDeConta()
{
InitializeComponent();
}
private void buttonAdicionaConta_Click(object sender, EventArgs e)
{
ContasCorrente c = new ContasCorrente();
{
c.Numero = Convert.ToInt32(textAdicionaContaNumero.Text);
c.Titular = textAdicionaContaNome.Text;
this.aplicacaoPrincipal.AdicionaConta(c);
}
}
}