Save data from a textbox in a class and display in a datagrid

0

I am making a program for simple registration, without using a database, only with an array. The program was already functional when I noticed that the most important part was wrong because I had not understood correctly. I just did not use the class Person I created, but I did manipulate everything with the textbox and the datagrid I display the entries.

I could not understand right how to pull the data from the Person class (which I put the code below) to when I use a textBox to save the data in that class, into an array. And with this data saved, display each record in a row of the datagrid.

List<Pessoa> list = new List<Pessoa>();

        public class Pessoa
    {

        //atributos privados da classe Pessoa
        private string nome;
        private string endereço;
        private string ano_nascimento;
        private string telefone;

        //propriedades públicas, read-only
        public Pessoa(string nome, string endereço, string ano_nascimento, string telefone)
        {
            this.nome = nome;
            this.endereço = endereço;
            this.ano_nascimento = ano_nascimento;
            this.telefone = telefone;
        }

        //método construtor get(pega a informação) e set(grava)
        public string getNome()
        {
            return nome;
        }

        public string getEndereço()
        {
            return endereço;
        }

        public string getAno_nascimento()
        {
            return ano_nascimento;
        }

        public string getTelefone()
        {
            return telefone;
        }

        public void setNome(string nome)
        {
            this.nome = nome;
        }

        public void setEndereço(string endereço)
        {
            this.endereço = endereço;
        }

        public void setAno_nascimento(string ano_nascimento)
        {
           this.ano_nascimento = ano_nascimento;
        }

        public void setTelefone(string telefone)
        {
            this.telefone = telefone;
        }

        public void AlterarEndereco(string novoEndereco)
        {
            endereço = novoEndereco;
        }

        public void AlterarTelefone(string novoTelefone)
        {
            telefone = novoTelefone;
        }

    }

Part of the code that I tried to save the register to an array after putting the data in each textbox.

private void bt_salvar_Click(object sender, EventArgs e)
        {
             list.Add(new Pessoa(txt_nome.Text, txt_endereco.Text, /*dataNasc*/ txt_ano.Text, txt_tele.Text));

        }

And that's the part of the save code I saw that was really wrong and I was not dealing with the attributes of the class.

string[] dados = { txt_nome.Text, txt_endereco.Text, txt_ano.Text, txt_tele.Text, txt_registro.Text };

        this.dataGridView1.Rows.Add(dados);

I'm programming a Windows Forms Application in C # in Visual Studio.

Intheclassnamed"Person", with the attributes "Name", "Address", "YearNation" and "Phone", I am using the private attributes that are available by the public properties (read only). Below the current code:

   public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }



    List<Pessoa> listcadastro = new List<Pessoa>();



    //apagar tudo que estava sendo escrito na opção de cadastro atual
    void reset()
    {
        txt_nome.Clear();
        txt_endereco.Clear();
        txt_ano.Clear();
        txt_registro.Clear();
        txt_tele.Clear();
        bt_pfisica.Checked = false;
        bt_pjuridica.Checked = false;
    }

    private void bt_cancel_Click(object sender, EventArgs e)
    {
        reset();
    }


    public class Pessoa
    {
        private string nome;
        private string endereço;
        private string ano_nascimento;
        private string telefone;

        /*
        //propriedades públicas, read-only
        public Pessoa(string nome, string endereço, string ano_nascimento, string telefone)
        {
            this.nome = nome;

            this.endereço = endereço;

            this.ano_nascimento = ano_nascimento;

            this.telefone = telefone;

        }*/

        public string Nome
        {
            get
            {
                return nome;
            }

            set
            {
                nome = value;
            }
        }

        public string Endereço
        {
            get
            {
                return endereço;
            }

            set
            {
                endereço = value;
            }
        }

        public string Ano_nascimento
        {
            get
            {
                return ano_nascimento;
            }

            set
            {
                ano_nascimento = value;
            }
        }

        public string Telefone
        {
            get
            {
                return telefone;
            }

            set
            {
                telefone = value;
            }
        }
    }



    private void bt_salvar_Click(object sender, EventArgs e)
    {



         listcadastro.Add(new Pessoa() {Ano_nascimento = txt_ano.Text, Nome = txt_nome.Text, Endereço = txt_endereco.Text, Telefone = txt_tele.Text });

         dataGridView1.DataSource = null;
         dataGridView1.DataSource = listcadastro; 
    }

    private void novoMenuItem_Click(object sender, EventArgs e)
    {

        txt_nome.Enabled = true;
        txt_ano.Enabled = true;
        txt_endereco.Enabled = true;
        txt_tele.Enabled = true;

    }

    private void limpa_dados()
    {
        txt_nome.ResetText();// limpa o nome
        txt_tele.ResetText();// limpa o telefone
        txt_endereco.ResetText();// limpa o endereço
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        txt_nome.Enabled = false;
        txt_ano.Enabled = false;
        txt_endereco.Enabled = false;
        txt_tele.Enabled = false;
        txt_registro.Enabled = false;
    }

    private void bt_pfisica_CheckedChanged(object sender, EventArgs e)
    {
        if (bt_pfisica.Checked)
        {
            txt_registro.Enabled = true;
        }
    }

    private void bt_pjuridica_CheckedChanged(object sender, EventArgs e)
    {
        if (bt_pjuridica.Checked)
        {
            txt_registro.Enabled = true;
        }
    }




}

}

    
asked by anonymous 02.03.2017 / 12:58

1 answer

1

Firstly I would change your person class to use get and C # set

public class Pessoa
{
    private string nome;
    private string endereço;
    private string ano_nascimento;
    private string telefone;

    public string Nome
    {
        get
        {
            return nome;
        }

        private set
        {
            nome = value;
        }
    }

    public string Endereço
    {
        get
        {
            return endereço;
        }

        private set
        {
            endereço = value;
        }
    }

    public string Ano_nascimento
    {
        get
        {
            return ano_nascimento;
        }

        private set
        {
            ano_nascimento = value;
        }
    }

    public string Telefone
    {
        get
        {
            return telefone;
        }

        private set
        {
            telefone = value;
        }
    }

    public Pessoa(string nome, string endereço, string ano_nascimento, string telefone)
    {
        this.nome = nome;

        this.endereço = endereço;

        this.ano_nascimento = ano_nascimento;

        this.telefone = telefone;

    }
}

After that, on your save button, simply add the items in the person list and refer to DataGridView through the

02.03.2017 / 16:03