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

Dúvida no Ex. 1 da Aula 3 - Mão na Massa - Windows Forms

Resolvi o exercício conforme codigo abaixo que compilou normalmente.Mas no Form1_Load os textboxs não foram carregados com os conteúdos. Debugando o código quando o programa só executa a primeira linha e antes de executar a segunda ja aparece o form com os textbox em branco.

private void Form1_Load(object sender, EventArgs e) { Conta c = new Conta(); c.Titular.Nome = "Victor Harada"; c.Deposita(250); c.Numero = 1; txtTitular.Text = c.Titular.Nome; txtSaldo.Text = Convert.ToString(c.Saldo); txtNumero.Text = Convert.ToString(c.Numero);

}

5 respostas

Bom dia Agnaldo, verifique se você renomeou a propriedade nome dos 3 textBox para:

txtTitular
txtSaldo
txtNumero

Ou se ainda está com o nome padrão.

Boa tarde Ramon, a primeira coisa que eu fiz foi mudar os nomes txtTitular,txtSaldo,txtNumero. Mudei para o código para a resposta padrao do exercicio:

this.conta = new Conta(); this.conta.Titular.Nome = "Victor Harada"; this.conta.Deposita(250); this.conta.Numero = 1; txtTitular.Text = this.conta.Titular.Nome; txtSaldo.Text = Convert.ToString(this.conta.Saldo); txtNumero.Text = Convert.ToString(this.conta.Numero);

O mais estranho é que quando eu debugo com F10 só é executada a primeira linha do form1_load que instancia a classe conta e já aparece o formulário . Todas as linhas seguintes não são executadas. Segue a classe Conta.cs: public class Conta { public double Saldo { get; private set; } public Cliente Titular { get; set; } public int Numero { get; set; } public string Cpf { get; set; } public int Agencia { get; set; }

public bool Saca(double valorASerSacado) { if (valorASerSacado > this.Saldo || valorASerSacado < 0) { return false; } else { if (Titular.EhMaiorDeIdade()) { this.Saldo -= valorASerSacado; return true; } else { if (valorASerSacado > 200) { return false; } else { this.Saldo -= valorASerSacado; return true; } } } }

public void Deposita(double valor) { this.Saldo += valor; }

public void Transfere(Conta destino, double valor) { this.Saca(valor); destino.Deposita(valor); }

}

solução!

Eu fiz um teste aqui no visual estúdio colando o seu código, segue:

namespace testeAgnaldo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Conta c = new Conta();
            c.Titular = new Cliente();//só adicionei essa linha e funcionou normalmente.
            c.Titular.nome = "Victor Harada"; 
            c.Deposita(250); 
            c.Numero = 1; 
            txtTitular.Text = c.Titular.nome; 
            txtSaldo.Text = Convert.ToString(c.Saldo); 
            txtNumero.Text = Convert.ToString(c.Numero);

        }
    }
}

Ramon era isso mesmo, estava faltando instanciar a classe cliente.

Obrigado

Tive o mesmo problema que o Agnaldo e estava a um bom tempo sem entender o erro.

Boa Ramon muito Obrigado.