none
combobox anidados RRS feed

  • Pregunta

  • Hola buenas noches una pregunta como puedo hacer dos combobox anidados sin base de datos en c# forms depende de lo que elijan en el combobox1 da las opciones disponibles en el combobox dos si elijen otra opcion en el combobox1 cambian las de combo2 no quiero usar bases de datos por que solo se va a usar el programa en una pc y no es mucha informacion intente agregar elementos a mi combobox1 pero ni siquiera los agrega les dejo lo que ise haber si me pueden ayudar 

     private void comboBoxEscuela_SelectedIndexChanged(object sender, EventArgs e)
            {
                comboBoxEscuela.Items.Add("Escuela de Escala de Mar");
                comboBoxEscuela.Items.Add("Escuela de Búsqueda y Rescate");
            }
            private void comboBoxCurso_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (comboBoxEscuela.Text == "Escuela de Escala de Mar")
                {
                    comboBoxCurso.Items.Add("Condestables Primer Nivel");
                    comboBoxCurso.Items.Add("Contramaestres Primer Nivel");
                    comboBoxCurso.Text = "";
                }
                else if (comboBoxEscuela.Text == "Escuela de Búsqueda y Rescate")
                {
                    comboBoxCurso.Items.Add("Capacitación de Nadador de Rescate de Superficie");
                    comboBoxCurso.Items.Add("De Planeamiento de Operaciones de Búsqueda y Rescate Marítimo");
                    comboBoxCurso.Items.Add("De Coordinador en Escena en Operaciones de Búsqueda y Rescate");
                    comboBoxCurso.Items.Add("De Comunicaciones de Búsqueda y Rescate");
                    comboBoxCurso.Items.Add("De Supervisión y Control de las Operaciones Marítimas de Búsqueda y Rescate");
                    comboBoxCurso.Items.Add("De capacitación de valoración  y actualización del nadador de Rescate desde Helicóptero");
                    comboBoxCurso.Items.Add("De Capacitación de Nadador de Rescate desde Helicóptero");
                    comboBoxCurso.Text = "";
                }
            }
    combobox escuela es mi coombobox1 y comboboxcurso es mi combo2 en este caso dependiendo de la escuela seleccionada son llos curso que aparecen el el combo 2 gracias espero me puedan ayudar 

    lunes, 3 de julio de 2017 4:51

Respuestas

  • Está más o menos bien como lo tienes, pero hay que cambiar un par de cosillas:

    - Añade ComboBoxCurso.Items.Clear() al principio del evento. De lo contrario, a cada cambio se añadirán más items (en lugar de sustituir los existentes) y el combo irá creciendo.

    - El evento creo que lo tienes mal. No tendría que ser el comboBoxCurso_SelectedIndexChanged sino comboBoxEscueka_SelectedIndexChanged. Y el código que tienes en comboBoxEscuela_SelectedIndexChanged en realidad no tendría que estar en un evento de cambio del combo, sino en el Form_Load.

    - Para comparar el valor seleccionado, no uses el comboBoxEscuela.Text (que representa el texto tecleado a mano en el combo) sino el .SelectedItem (tendrás que hacerle un cast a String).

    • Marcado como respuesta IVANTO534 lunes, 3 de julio de 2017 18:39
    lunes, 3 de julio de 2017 6:44

Todas las respuestas

  • Está más o menos bien como lo tienes, pero hay que cambiar un par de cosillas:

    - Añade ComboBoxCurso.Items.Clear() al principio del evento. De lo contrario, a cada cambio se añadirán más items (en lugar de sustituir los existentes) y el combo irá creciendo.

    - El evento creo que lo tienes mal. No tendría que ser el comboBoxCurso_SelectedIndexChanged sino comboBoxEscueka_SelectedIndexChanged. Y el código que tienes en comboBoxEscuela_SelectedIndexChanged en realidad no tendría que estar en un evento de cambio del combo, sino en el Form_Load.

    - Para comparar el valor seleccionado, no uses el comboBoxEscuela.Text (que representa el texto tecleado a mano en el combo) sino el .SelectedItem (tendrás que hacerle un cast a String).

    • Marcado como respuesta IVANTO534 lunes, 3 de julio de 2017 18:39
    lunes, 3 de julio de 2017 6:44
  • hola

    [WinForms] ComboBox Anidados

    creo que el articulo puede ayudar

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 3 de julio de 2017 12:42
  • gracias ya pude hacerlo a la perfeccion le agregue ComboBoxCurso.Items.Clear() para que solo añadiera las opciones que eran y no fueran aumentando el codigo del combobox escuela lo borre e inserte las opciones en el form_load y el codigo de combocursos lo pase al combo escuelas y fuciona a la perfeccion gracias 

    lunes, 3 de julio de 2017 18:43