1
I am making a program for simple registration, without using database, only with array. The program was already functional when I noticed that the most important part was wrong because I had not understood it properly. I ended up not using the class Person I created, but I ended up manipulating everything with textbox and the datagrid that I display the entries.
I couldn’t quite understand 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, in an array. And with this data saved, display each record on a datagrid line.
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 I tried to save the register in 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 this is the part of the save code that I saw that was really wrong and I wasn’t dealing with the class attributes.
string[] dados = { txt_nome.Text, txt_endereco.Text, txt_ano.Text, txt_tele.Text, txt_registro.Text };
this.dataGridView1.Rows.Add(dados);
I am programming a Windows Forms Application in C# in Visual Studio.
In the class called "Person", with the attributes "Name", "Address", "Anonascimento" and "Phone", I am using the private attributes that are made 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;
}
}
}
}
Can you be more specific? I mean, give more details on this question of the grid you intend to use, for example
– ndr458
I ended up editing the question and added more codes, if it is not yet clear I can give more information without problems. I’m trying to be objective but I don’t think I’m making it
– user67662
Any particular reason why you shouldn’t use
get
andset
of C#? https://msdn.microsoft.com/pt-BR/library/w86s7x04.aspx– Pablo Tondolo de Vargas
None, until I saw that it was also another way to make the constructor method. It is better to do with it?
– user67662