sábado, 12 de noviembre de 2011

TREEVIEW C#

 public partial class Form1 : Form
    {
        private Interes listaInteres;

        internal Interes ListaInteres

        {
            get { return listaInteres; }
            set { listaInteres = value; }
        }
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)

        {
            this.listaInteres = new Interes();
            this.listaInteres.Id = 1;
            this.listaInteres.Nombre = "Interes";
            
            llenarArbol();
            
        }
        private void llenarArbol(){
            treeInteres.Nodes.Clear();
            TreeNode nodo = new TreeNode();
            nodo.Text = this.listaInteres.Nombre;
            nodo.Tag = this.listaInteres;
            treeInteres.Nodes.Add(nodo);
            imprimirRamas(this.listaInteres.Intereses, treeInteres.Nodes[0]);
            
           
        }
        private void imprimirRamas(List<Interes> intereses, TreeNode nodoPadre)
        {
            int i = 0;
            foreach (Interes interes in intereses)
            {
                TreeNode nodoHijo = new TreeNode();
                nodoHijo.Text = interes.Nombre;
                nodoHijo.Tag = interes;
                nodoPadre.Nodes.Add(nodoHijo);

                if (interes.Intereses.Count > 0)

                {
                    imprimirRamas(interes.Intereses, nodoPadre.Nodes[i]);
                }
                i++;
            }
        }

        private void btnGuardar_Click(object sender, EventArgs e)

        {
            Interes interes = new Interes();
            interes.Id = Convert.ToInt16(txtId.Text);
            interes.Nombre = txtNombre.Text;
            
            /*
            TreeNode nuevoNodo = new TreeNode();
            nuevoNodo.Text = interes.Nombre;
            nuevoNodo.Tag = interes;
            treeInteres.SelectedNode.Nodes.Add(nuevoNodo);
            */
            
            Interes interesPadre = (Interes) treeInteres.SelectedNode.Tag;
            if (this.listaInteres.Id == interesPadre.Id)
                listaInteres.Intereses.Add(interes);
            else
                buscarPadre(listaInteres.Intereses, interesPadre, interes);
            llenarArbol();
             

        }


        private void btnImprimir_Click(object sender, EventArgs e)

        {

            Interes interesPrincipal = this.listaInteres;

            System.Console.WriteLine(" (Negocio) Principal " + interesPrincipal.Id + " " + interesPrincipal.Nombre + " Num Nodos: " + interesPrincipal.Intereses.Count);
            
            interesPrincipal = (Interes) this.treeInteres.Nodes[0].Tag;
            System.Console.WriteLine(" (Vista) Principal "+ interesPrincipal.Id+ " "+interesPrincipal.Nombre+" Num Nodos: " + treeInteres.Nodes[0].Nodes.Count);
            
            imprimirRamas(interesPrincipal.Intereses);
        }

        private void imprimirRamas(List<Interes> intereses)

        {
           
            foreach (Interes interes in intereses)
            {
                System.Console.WriteLine(interes.Id+" - "+interes.Nombre);
                if (interes.Intereses.Count > 0)
                {
                    imprimirRamas(interes.Intereses);
                }
                
            }
        }
        private void buscarPadre(List<Interes> intereses, Interes interesPadre, Interes interesHijo)
        {
            foreach(Interes interes in intereses){
                if (interes.Id == interesPadre.Id)
                {
                    interes.Intereses.Add(interesHijo);
                    break;
                }
                if (interes.Intereses.Count>0)
                {
                    buscarPadre(interes.Intereses, interesPadre, interesHijo);
                }
            }
        }
    }
}

viernes, 11 de noviembre de 2011

LISTVIEW FACIL PROGRAMACION

   

    Como se cargan los datos en un listview

            foreach (Auto iterAuto in autos)
            {
                ListViewItem itemLV = new ListViewItem();
                itemLV.Text = Convert.ToString(iterAuto.Id);
                itemLV.Tag = iterAuto;
                lstvAutos.Items.Add(itemLV);
               
                itemLV.SubItems.Add(iterAuto.Marca);
                itemLV.SubItems.Add(iterAuto.Modelo);
                //itemLV.SubItems.Add(iterAuto.Tipo);
               
      Seleccion de un item en el listview         
        
        private void lstvAutos_SelectedIndexChanged(object sender, EventArgs e)
        {
            Auto autoSel = ((Auto)(lstvAutos.SelectedItems[0].Tag));
            resultado.Text = autoSel.Id + "-" + autoSel.Marca + "-" + autoSel.Modelo;

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;
            

        }
        
    }
}