none
¿Como Pasar items de dos listbox a otro c#?

    Pregunta

  • Muy buenas a todos miren les comento mi duda tengo 3 listbox y en los 2 primeros hay items lo que quiero hacer es que cuando presione a un boton se pase el item seleccionado del listbox1 y a la vez se pasa tambien el item del listbox2 que este en la misma fila del item seleccionado del listbox1 que esos dos se pasaen al listbox 3, aca una imagen para que me puedan comprender mejor:

    Ahi como ven en la imagen he seleccionado el item llamado Mochila ahora al darle a un boton quiero que se pase ese item y el otro item del listbox 2 que este en su misma fila del item seleccionado del listbox 1 el cual seria segun la imagen el item llamado unirforme que esos dos items de pasan al listbox 3, si alguien sabe como hacerlo se lo agradeceria mucho.


    • Editado iJorgePc viernes, 12 de enero de 2018 4:05 .
    viernes, 12 de enero de 2018 4:03

Respuestas

  •         public Form1()
            {
                InitializeComponent();
                this.listBox1.Items.AddRange(new object[] { 1, 2, 3, 4, 5 });
                this.listBox2.Items.AddRange(new object[] { "uno", "dos", "tres", "cuatro", "cinco" });
            }


            private void button1_Click(object sender, EventArgs e)
            { 
                if (this.listBox1.Items != null &&
                   this.listBox1.SelectedItem != null &&
                   this.listBox1.Items.Count == this.listBox2.Items.Count)
                {
                    object tmp = this.listBox1.SelectedItem;
                    int index = this.listBox1.SelectedIndex;
                    this.listBox1.Items[index] = this.listBox2.Items[index];
                    this.listBox2.Items[index] = tmp;
                }
            }
    viernes, 12 de enero de 2018 8:03
  • Creo que faltó la carga al ListBox3, fijate de esta forma

     private void button9_Click(object sender, EventArgs e)
            {
                int indice = listBox1.SelectedIndex;
                int itemN = listBox2.Items.Count - 1;
                if (indice > itemN || Convert.ToString(listBox2.Items [indice]) == "")
                {
                    MessageBox.Show("No tiene item en Listbox2");
                    return;
                }
                    listBox3.Items.Add(listBox1.Items[indice]);
                    listBox3.Items.Add(listBox2.Items[indice]);
           
            }

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    sábado, 13 de enero de 2018 1:34
  • Hola que no te ha funcionado?

    Cuando yo leí tu petición no hablabas de hacer nada en el listBox3. Supongo que lo editaste

    Crea un proyecto de app con forms de c#; añade al formulario tres listBox llamados listBox1 y listBox2 y un listBox3 Añade un botón llamado button1. En el evento load del form o el constructor del form pon el código marcado en negrita este código añade valores a los dos listView.

     public Form1()
            {
                InitializeComponent();
                this.listBox1.Items.AddRange(new object[] { 1, 2, 3, 4, 5 });
                this.listBox2.Items.AddRange(new object[] { "uno", "dos", "tres", "cuatro", "cinco" });
            }

    En el evento click del button1 añade el siguiente código , el qu eestá en negrita

    private void button1_Click(object sender, EventArgs e)
            { 
                if (this.listBox1.Items != null &&
                   this.listBox1.SelectedItem != null &&
                   this.listBox1.Items.Count == this.listBox2.Items.Count)
                {
                    object tmp = this.listBox1.SelectedItem;
                    int index = this.listBox1.SelectedIndex;
                    this.listBox1.Items[index] = this.listBox2.Items[index];
                    this.listBox2.Items[index] = tmp;

                    this.listBox3.Items.Add(tmp);

                    this.listBox3.Items.Add(this.listBox2.Items[index]);
                }
            }


    sábado, 13 de enero de 2018 11:22

Todas las respuestas

  •         public Form1()
            {
                InitializeComponent();
                this.listBox1.Items.AddRange(new object[] { 1, 2, 3, 4, 5 });
                this.listBox2.Items.AddRange(new object[] { "uno", "dos", "tres", "cuatro", "cinco" });
            }


            private void button1_Click(object sender, EventArgs e)
            { 
                if (this.listBox1.Items != null &&
                   this.listBox1.SelectedItem != null &&
                   this.listBox1.Items.Count == this.listBox2.Items.Count)
                {
                    object tmp = this.listBox1.SelectedItem;
                    int index = this.listBox1.SelectedIndex;
                    this.listBox1.Items[index] = this.listBox2.Items[index];
                    this.listBox2.Items[index] = tmp;
                }
            }
    viernes, 12 de enero de 2018 8:03
  • Hola vyrcyrus_

    Recuerda que no debes de proponerte tus propias respuestas.

    Las personas encargadas de realizar esta actividad son los colaboradores de la comunidad de los foros.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    viernes, 12 de enero de 2018 15:54
    Moderador
  • Gracias por comentar, pero on me ha funcionado :(
    viernes, 12 de enero de 2018 18:03
  • Seria más sencillo bloquear el link al usuario q creo la respuesta, no tenía ni idea q tenía q recordar eso. ;)

    viernes, 12 de enero de 2018 23:20
  • Creo que faltó la carga al ListBox3, fijate de esta forma

     private void button9_Click(object sender, EventArgs e)
            {
                int indice = listBox1.SelectedIndex;
                int itemN = listBox2.Items.Count - 1;
                if (indice > itemN || Convert.ToString(listBox2.Items [indice]) == "")
                {
                    MessageBox.Show("No tiene item en Listbox2");
                    return;
                }
                    listBox3.Items.Add(listBox1.Items[indice]);
                    listBox3.Items.Add(listBox2.Items[indice]);
           
            }

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    sábado, 13 de enero de 2018 1:34
  • Hola que no te ha funcionado?

    Cuando yo leí tu petición no hablabas de hacer nada en el listBox3. Supongo que lo editaste

    Crea un proyecto de app con forms de c#; añade al formulario tres listBox llamados listBox1 y listBox2 y un listBox3 Añade un botón llamado button1. En el evento load del form o el constructor del form pon el código marcado en negrita este código añade valores a los dos listView.

     public Form1()
            {
                InitializeComponent();
                this.listBox1.Items.AddRange(new object[] { 1, 2, 3, 4, 5 });
                this.listBox2.Items.AddRange(new object[] { "uno", "dos", "tres", "cuatro", "cinco" });
            }

    En el evento click del button1 añade el siguiente código , el qu eestá en negrita

    private void button1_Click(object sender, EventArgs e)
            { 
                if (this.listBox1.Items != null &&
                   this.listBox1.SelectedItem != null &&
                   this.listBox1.Items.Count == this.listBox2.Items.Count)
                {
                    object tmp = this.listBox1.SelectedItem;
                    int index = this.listBox1.SelectedIndex;
                    this.listBox1.Items[index] = this.listBox2.Items[index];
                    this.listBox2.Items[index] = tmp;

                    this.listBox3.Items.Add(tmp);

                    this.listBox3.Items.Add(this.listBox2.Items[index]);
                }
            }


    sábado, 13 de enero de 2018 11:22