jueves, 10 de noviembre de 2011

PROGRAMACION UTILIZANDO EL TREEVIEW

public partial class Form1 : Form
    {
        int cont = 1;
        public List<Persona> personas = new List<Persona>();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Persona nuevoPersona = new Persona(1, "Personas");
            personas.Add(nuevoPersona);

            TreeNode nodoPersona = new TreeNode();
            nodoPersona.Text = nuevoPersona.Nombre;
            nodoPersona.Tag = nuevoPersona;

            treeVPersonas.Nodes.Add(nodoPersona);

            comboBGenero.Items.Add("Masculino");
            comboBGenero.Items.Add("Femenino");
            
            btnModificar.Enabled = false;
            btnGuardar.Enabled = false;
            btnEliminar.Enabled = true;
            treeVPersonas.Enabled = false;
            comboBGenero.Enabled = true;
            txtNombre.Enabled = false;
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            Persona nuevoPersona = new Persona(cont++, txtNombre.Text,comboBGenero.Text);
            Persona personaSeleccionada = (Persona)treeVPersonas.SelectedNode.Tag;

            BuscarPadre(personas, personaSeleccionada, nuevoPersona);
            lblId.Text = Convert.ToString(cont++);

            txtNombre.Clear();
            
        }
        public void BuscarPadre(List<Persona> person, Persona nodoPadre, Persona nodoHijo)
        {
            foreach (Persona x in person)
            {
                if (x.Id == nodoPadre.Id)
                {
                    x.ListaPersonas.Clear();
                    x.ListaPersonas.Add(nodoHijo);

                    TreeNode nodoSeleccionado = treeVPersonas.SelectedNode;
                    llenarArbol(x.ListaPersonas, nodoSeleccionado);

                    break;
                }

                if (x.ListaPersonas.Count > 0)
                {
                    BuscarPadre(x.ListaPersonas, nodoPadre, nodoHijo);
                }

            }
        }


        public void llenarArbol(List<Persona> personlist, TreeNode nodoPadre)
        {
            int i = 0;

            foreach (Persona x in personlist)
            {
                
                TreeNode nodoHijo = new TreeNode();
                nodoHijo.Text = x.Nombre;
                nodoHijo.Tag = x;
                nodoPadre.Nodes.Add(nodoHijo);

                if (x.ListaPersonas.Count > 0)
                {
                    llenarArbol(x.ListaPersonas, nodoPadre.Nodes[i]);
                }
                i++;
            }
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            treeVPersonas.SelectedNode.Remove();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        
        {
            btnNuevo.Enabled = false;
            btnGuardar.Enabled = true;
            btnEliminar.Enabled = true;
            btnModificar.Enabled = false;
            treeVPersonas.Enabled = true;
            comboBGenero.Enabled = true;
            txtNombre.Enabled = true;
            

        }
        
    }
}

   

No hay comentarios:

Publicar un comentario