Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Na aula 4 do curso de C# III, o meu programa abre o form de cadastro de Conta,

Eu fiz o código praticamente igual, mas quando clico no botão de "Adicionar Conta", o form Cadastro de Conta abre mas não aparece nenhuma txtBox e nem o Btn

Alguem passou pelo mesmo problema?

public partial class CadastroDeConta : Form
    {
        private Form1 aplicacaoPrincipal;
        public CadastroDeConta (Form1 aplicacaoPrincipal)
        {
            this.aplicacaoPrincipal = aplicacaoPrincipal;
        }
        public CadastroDeConta()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            int id = Convert.ToInt32(txtIdConta.Text);
            string cliente = txtNomeCliente.Text;

            Conta conta = new ContaCorrente(id)
            {
                cliente = new Cliente(cliente)
            };
            this.aplicacaoPrincipal.AdicionaConta(conta);
        }
    }
public partial class Form1 : Form
    {
        private Conta[] contas;
        private Form1 aplicacaoPrincipal;
        private int quantidadeDeContas;


        public void AtualizaCampos()
        {
            int i = comboContas.SelectedIndex;
            txtIdConta.Text = Convert.ToString(contas[i].IdConta);
            txtSaldo.Text = Convert.ToString(contas[i].Saldo);
            txtTitular.Text = contas[i].cliente.Nome;
        }
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {



        }

        private void button3_Click(object sender, EventArgs e)
        {
            int indice = comboContas.SelectedIndex;

            contas[indice].Saca(Convert.ToDouble(txtValor.Text));

            AtualizaCampos();
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            int i = comboContas.SelectedIndex;
            contas[i].Deposita(Convert.ToDouble(txtValor.Text));
            AtualizaCampos();
        }

        public void AdicionaConta (Conta c)
        {

            this.contas[this.quantidadeDeContas] = c;
            this.quantidadeDeContas++;

            comboContas.Items.Add(c);


        }

        private void button2_Click(object sender, EventArgs e)
        {
            CadastroDeConta c = new CadastroDeConta(this);
            c.ShowDialog();

        }
    }i
1 resposta
solução!

Olá João,

o problema é que no código do formulário não está chamando o InitializeComponent(). Quando você faz o new CadastroDeConta(this), está chamando o construtor que recebe o Form1 aplicacaoPrincipal. Ele só atribui o parâmetro no atributo, mas não faz a chamada que cria os elementos da tela que é o InitializeComponent(). Ele acabou ficando no construtor a parte que não recebe nenhum parâmetro e nunca é chamado.

Se você apagar o outro construtor e mover a chamada do InitializeComponent() para o seu novo construtor que recebe o Form1 aplicacaoPrincipal ele deve mostrar os text box e os inputs.