4
respostas

erro deposito e textboxes

ola boa noite, inicialmente estava com um problema para executar a função de deposito, parece que a conta não foi instanciada no metodo form1_load então eu tive que instanciar logo no começo do codigo... private Conta conta = new Conta(); ...

fica estranho instanciar duas vezes a mesma conta, não me parece certo...

fora isso, nos campos textbox em nenhum deles aparece o texto que configurei ex.:

private void MostraConta() { textoTitular.Text = this.cu.Titular.nome; textoNumero.Text = Convert.ToString(this.cu.Numero); textoSaldo.Text = Convert.ToString(this.cu.Saldo); }

aqui tenho dois pontos: 1- no form1_load tenho uma linha para chamar o metodo MostraConta porém, aparentemente ele não é executado o que reforça minha suspeita de que há um problema na execução do form1_load...

2- quando o metodo MostraConta é executado através do metodo do botão, acontece um erro, o seguinte erro: "An unhandled exception of type 'System.NullReferenceException' occurred in WindowsFormsApplication2.exe

Additional information: Referência de objeto não definida para uma instância de um objeto."

vou colar o codigo completo da classe form1 abaixo: " 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 WindowsFormsApplication2 { public partial class Form1 : Form { private Conta cu = new Conta(); public Form1() { InitializeComponent(); }

private void Form1_Load(object sender, EventArgs e) { this.cu = new Conta(); this.cu.Titular = new Cliente(); this.cu.Numero = 1; this.cu.Deposita(250); this.cu.Titular.nome = "josé cleverson"; this.MostraConta(); } private void MostraConta() { textoTitular.Text = this.cu.Titular.nome; textoNumero.Text = Convert.ToString(this.cu.Numero); textoSaldo.Text = Convert.ToString(this.cu.Saldo); }

private void button2_Click(object sender, EventArgs e) { double valorDeposito = Convert.ToDouble(textoDeposito.Text); this.cu.Deposita(valorDeposito); this.MostraConta();

} } } "

se alguém tiver respostas para as questões que levantei aqui, agradeço desde ja! por enquanto, fico no aguardo o/

4 respostas

Andrey, tive o mesmo problema. o que fiz foi instanciar no Início como você e retirar a instância dentro do Formulário, dessa forma fica apenas uma vez.

Mas ainda fico com a dúvida porque o formato apresentado na solução não funciona.

Se alguém souber o motivo, nos ajudem o/.

Qual exercício você está ?

Se for no que estou pensando, nesse momento essa solução de instanciar duas vezes é uma opção mas no decorrer do curso isso será corrigido adotando uma melhor prática.

o problema é que aparentemente o form1_load nao esta sendo executado no decorrer do programa, nenhum dos campos text box ou combo box sao preenchidos quando inicializo o programa

Quando você inicia o programa o objeto da Conta não tem nenhuma propriedade preenchida, por isso os controles ficam vazios.