none
Ayuda comboBox Anidado RRS feed

  • Pregunta

  • Hola buenas noches una pregunta como puedo hacer dos combobox anidados sin base de datos en c# forms e intentado de todo pero nada me funciona lo que quiero meter son escuelas y depende la escuela que elijan en el combobox2 salen los cursos disponibles espero me puedan ayudar gracias
    martes, 27 de junio de 2017 3:21

Todas las respuestas

  • Buenas,

    Puedes crear una clase escuela, que contenga un array de strings que sean los cursos y un segundo array que sea el nombre de la escuela. Todo esto haces un array de la clase escuela, y son los datos que le pasas al combobox, de este modo, con poner simplemente myarray[combobox.selectedindex] en el evento selectedindexchanged puedes ir rellenando el segundo combobox

    public class Escuela
    {
        public string Nombre {get;set;}
        public string[] Cursos;
    }

    Ese es un ejemplo de la clase Escuela, una vez que la tengas rellenada, cargas el Combobox1:

    Escuela[] MyArrayEscuelas = //Generas los datos desde donde quieras
    //Generamos los datos del combobox1
    Combobox1.Text = "";
    Combobox1.Items.Clear();
    for(int i = 0; i < MyArrayEscuelas.Lenght; i++)
    {
        Combobox1.Items.Add(MyArrayEscuelas[i].Nombre);
    }
    
    //Como ha cambiado el combobox1, el combobox2 ya no tiene valor, asi que lo borramos
    Combobox2.Text = "";
    Combobox2.Items.Clear();

    Y ahora, dentro del evento SelectedIndexChanged del combobox1

    private void combobox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Como hemos limpiado los datos al cambiar el combobox1, no hace falta volverlo a hacer aqui
        //Recorremos todos los cursos de la escuela
        for(int i = 0; i < MyArrayEscuelas[combobox1.SelectedIndex].Cursos.Lenght; i++)
        {
            combobox2.Items.Add(MyArrayEscuelas[combobox1.SelectedIndex].Cursos[i]);
        }
    }

    DE esta manera, cada vez que cambies el combobox1, los items del combobox2 se van a modificar según los datos que tu hayas metido en el array Cursos de esa escuela.

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    martes, 27 de junio de 2017 8:41