none
Agregar Items a un ComboBox y que no se repitan. RRS feed

  • Pregunta

  • Hola que tal...

    Como le puedo hacer para agregar Items a un ComboBox a través del texto que contenga un TextBox teniendo un Button agregue dicho Item, la verdad soy nuevo en esto de C#.

    De todos modos les anexo como lo tenia.

    private void ButtonAgregar_Click(object sender, EventArgs e)
            {
                if (TextBoxNombre == ComboBoxModelos.DataSource)
                {
                    MessageBox.Show("Este Modelo ya Existe!");
                }
                else if (TextBoxNombre != ComboBoxModelos.DataSource)
                {
                    ComboBoxModelos.Items.Add(TextBoxNombre.Text);
                    MessageBox.Show("Modelo" + " " + TextBoxNombre.Text + " " + "Agregado");
                }
               
            }

    De antemano Gracias!


    viernes, 28 de septiembre de 2018 2:29

Respuestas

  • Saludos gabriel

    if (ComboBoxModelos.Items.Contains(TextBoxNombre.Text))
        MessageBox.Show("Elemento ya existe");
    else
    {
        ComboBoxModelos.Items.Add(TextBoxNombre.Text);
        MessageBox.Show("Elemento agregado");
    }

    .....también si quieres que haga distinción de mayúsculas y minúsculas (por ejemplo si agregas el elemento "prueba" y luego otro elemento "Prueba" son diferentes porque uno comienza con mayúsculas), puedes usar el siguiente código:

    /*acá mandamos a contar los elementos que sean igual al que se escriba en TextBoxNombre.Text y le decimos que a ambos
    los convierte a mayúsucla (ToUpper) solo para hacer la comparación*/
    
    int cantelementos = (from string i in ComboBoxModelos.Items where i.ToUpper() == TextBoxNombre.Text.ToUpper() select i).Count();
    
    if (cantelementos > 0)
        MessageBox.Show("Elemento ya existe");
    else
    {
        ComboBoxModelos.Items.Add(TextBoxNombre.Text);
        MessageBox.Show("Elemento agreegado");
    }

    También es importante aclarar que si usas la propiedad DataSource del combobox no puedes modificar los elementos atrvés de los Items del mismo sino que tendrías que modificar el datasource y volvérselo a asignar


    • Editado Yerald Mora martes, 2 de octubre de 2018 19:44 Distinción de mayúsculas y minúsculas
    • Propuesto como respuesta Blueh Scouth martes, 2 de octubre de 2018 19:49
    • Marcado como respuesta Gabriel Quiroz miércoles, 3 de octubre de 2018 3:38
    martes, 2 de octubre de 2018 19:28

Todas las respuestas

  • Hola buenas tardes Gabriel

     private void button1_Click(object sender, EventArgs e)
            {


                if (comboBox1.Items.Count>0)
                {
                    for (int i = 0; i < comboBox1.Items.Count; i++)
                    {
                        if (textBox1.Text == comboBox1.Items[i].ToString())
                        {
                        MessageBox.Show("Existe");
                        return;
                        }


                    }
                }
                comboBox1.Items.Add(textBox1.Text);
            }

                                         
    martes, 2 de octubre de 2018 19:09
  • Saludos gabriel

    if (ComboBoxModelos.Items.Contains(TextBoxNombre.Text))
        MessageBox.Show("Elemento ya existe");
    else
    {
        ComboBoxModelos.Items.Add(TextBoxNombre.Text);
        MessageBox.Show("Elemento agregado");
    }

    .....también si quieres que haga distinción de mayúsculas y minúsculas (por ejemplo si agregas el elemento "prueba" y luego otro elemento "Prueba" son diferentes porque uno comienza con mayúsculas), puedes usar el siguiente código:

    /*acá mandamos a contar los elementos que sean igual al que se escriba en TextBoxNombre.Text y le decimos que a ambos
    los convierte a mayúsucla (ToUpper) solo para hacer la comparación*/
    
    int cantelementos = (from string i in ComboBoxModelos.Items where i.ToUpper() == TextBoxNombre.Text.ToUpper() select i).Count();
    
    if (cantelementos > 0)
        MessageBox.Show("Elemento ya existe");
    else
    {
        ComboBoxModelos.Items.Add(TextBoxNombre.Text);
        MessageBox.Show("Elemento agreegado");
    }

    También es importante aclarar que si usas la propiedad DataSource del combobox no puedes modificar los elementos atrvés de los Items del mismo sino que tendrías que modificar el datasource y volvérselo a asignar


    • Editado Yerald Mora martes, 2 de octubre de 2018 19:44 Distinción de mayúsculas y minúsculas
    • Propuesto como respuesta Blueh Scouth martes, 2 de octubre de 2018 19:49
    • Marcado como respuesta Gabriel Quiroz miércoles, 3 de octubre de 2018 3:38
    martes, 2 de octubre de 2018 19:28
  • hola

    >>Como le puedo hacer para agregar Items a un ComboBox a través del texto que contenga un TextBox teniendo un Button agregue dicho Item

    si asignas un DataSource al combobox no puedes agregar items directamente al control, tienes que agregarlo al origen de datos

    No puedes usar el Items.Add() o similar si el control tiene asignado el DataSource

    Ademas un if con la propiedad DataSource tampoco aplica, No mencionas cual es al origend e datos, quizas un datatable o usas una base de datos, pero es contra esta que deberias validad la existencia y no contra el control

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 2 de octubre de 2018 19:54