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

Compila mas não aparece nome nenhum no textbox

Eu acabei recomeçando tudo do zero, por isso fiz uma nova Conta cliente bem basica que é esta aqui:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Alura2
{
    class Conta
    {
        public String titular;
        public String conta;
        public String agencia;

        public Conta (String titular, String conta, String agencia)
        {
            this.titular = titular;
            this.conta = conta;
            this.agencia = agencia;

        }

    }
}

Porém ao rodar o código ele não mostra nada no TextBox

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 Alura2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_load(object sender, EventArgs e)
        {
            Conta conta = new Conta("Victor", "12345", "789");
            TextoTitular.Text = conta.titular;

        }
}

Além disso o Visual Studio me aponta um erro caso eu não tenha essa função abaixo do Form1_load


        private void TextoTitular_TextChanged(object sender, EventArgs e)
        {
        }

Quando eu tirei o código e deixei assim, ele aparece a mensagem no textBox

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

        private void Form1_load(object sender, EventArgs e)
        {
            Conta conta = new Conta("Victor", "12345", "789");
            TextoTitular.Text = conta.titular;

        }

        private void TextoTitular_TextChanged(object sender, EventArgs e)
        {
            TextoTitular.Text = "texto teste";
        }
    }
}

porém eu preciso apertar alguma tecla para aparecer o texto E se eu tentar usar assim :

        private void TextoTitular_TextChanged(object sender, EventArgs e)
        {
            TextoTitular.Text = conta.titular;
        }

ele também dá erro, pois diz que não tem acesso ao conta que eu criei

O que fazer ?

1 resposta
solução!

Olá, Gabriel!

Fique atento ao escopo da declaração do objeto Conta:

        private void Form1_load(object sender, EventArgs e)
        {
            Conta conta = new Conta("Victor", "12345", "789");
            TextoTitular.Text = conta.titular;

        }

Veja que, no código acima, você declarou Conta conta =... dentro do Form1_load. Isso significa que nenhum método fora de Form1_load vai conseguir acessar o objeto conta.

O que você pode fazer é declarar Conta no escopo da classe (isto é, no nível da classe):


    public partial class Form1 : Form
    {
        Conta conta = null;
        public Form1()
        {
            InitializeComponent();
        }

Em seguida, atribuir o valor a conta sem declará-lo novamente, em Form1_load:

        private void Form1_load(object sender, EventArgs e)
        {
            conta = new Conta("Victor", "12345", "789");
            TextoTitular.Text = conta.titular;
        }

Boa sorte e bons estudos!