C# - Importando arquivo texto para um TreeView


Nesta dica veremos como importar um arquivo no formato Texto para um controle TreeView.

Veremos como importar o conteúdo do arquivo contatos.txt abaixo para um controle Treeview usando o Visual C# 2010 Express Edition:

Jose C Macoratti, macoratti@yahoo.com, 11-4578-5588
Miriam Estela, miriamest@uol.com.br, 11-5210-2245
Jefferson Andre, jeffand@gmail.com, 11-3205-5421
Janice Rachel Siqueira, janicerach@terra.com.br, 11-5201-5588
Jessica Naara, jesslang@terra.com.br, 11-6024-5588
Mario LIma, mario@terra.com.br, 11-6998-5018

Obs: O arquivo contatox.txt é um arquivo texto onde temos cada linha representando um registro sendo que o campos estão separados por vírgula.

Abra o Visual C# 2010 Express Edition e crie um novo projeto do tipo Windows Application com o nome : CSV_TreeView

No formulário form1.cs inclua um controle TreeView e 1 controle TextBox com a seguinte configuração:

Conforme o leiaute abaixo:

Abra o formulário form1.cs e defina no início da classe os namespaces a seguir:

using System.Windows.Forms;
using System.IO;

No evento Load do formulário defina o código a seguir que lê o arquivo contatos.txt (localizado na pasta bin do projeto) e separa cada item do arquivo usando a função Split : strContato.Split(',') e gerando um array de strings chamado Contato;

     private void Form1_Load(object sender, EventArgs e)
        {

            StreamReader leitorStream = new StreamReader("contatos.txt");
            string strContato = "";

            TreeNode main = contatos.Nodes.Add("Contatos");

            while ((strContato = leitorStream.ReadLine()) != null)
            {
                string[] Contato = strContato.Split(',');

                TreeNode nome = main.Nodes.Add(Contato[0]);
                name.ForeColor = Color.Green;

                TreeNode email = name.Nodes.Add(Contato[1]);
                email.ForeColor = Color.Red;

                TreeNode numero_contato = name.Nodes.Add(Contato[2]);
                numero_contato.ForeColor = Color.Blue;
            }
        }
Estamos criando dois nós para exibir o nome, o email e o telefone;

Estamos também definindo cores distintas aos nós criados.

No evento AfterSelect do controle TreeView defina o seguinte código que irá exibir o item selecionado do segundo nível do TreeView no controle TextBox:

  private void contatos_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Node.Level == 2)
            {
                txtSelecao.Text  = contatos.SelectedNode.Text;
            }
        }

O resultado obtido é visto a seguir:

Pegue o projeto completo aqui: CSV_TreeView.zip

"Em verdade , em verdade vos digo que vem a hora, e agora é, em que os mortos ouvirão a voz do Filho de Deus, e os que a ouvirem viverão."(João-5:25)

Referências:


José Carlos Macoratti