none
Agregar Texto y Valor a ComboBox RRS feed

  • Pregunta

  • Que tal, necesito añadir texto y valor a un combo, el texto para mostrar y el value para definir agi mis conexiones. ¿Como puedo realizarlo?. Espero su respuesta. GRACIAS
    • Cambiado Enrique M. Montejo viernes, 24 de junio de 2016 9:33 Pregunta relacionada con controles de Windows Forms.
    martes, 21 de junio de 2016 19:08

Todas las respuestas

  • Hola Gspindola,

    - De donde proviene los datos que vas a agregar al ComboBox?

    Puedes asignarlos al DataSource y mediante el ValueMember y DisplayMember le asignas el valor.

            ComboBox1.DataSource = ...
            ComboBox1.ValueMember = "El valor"
            ComboBox1.DisplayMember = "Lo que muestra"

    Puedes usar un DataTable o Lista al DataSource.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    martes, 21 de junio de 2016 19:15
  • Gspindola,

    Hay bastantes ejemplos en la red, el caso es que debes hacer uso de las propiedades ValueMember y DisplayMember para asignar los valores de identificación y presentación, algo como lo siguiente:

    Using cn As New SqlConnection("CADENA_CONEXION")
    	Dim consultaSQL As String = "SELECT ID, Nombre FROM MiTabla"
    
    	Dim da As New SqDataAdapter(consultaSQL, cn)
    
    	Dim dt As New DataTable()
    
    	da.Fill(dt)
    
    	comboBox1.ValueMember = "ID"
    	comboBox1.Display.Member = "Nombre"
    	comboBox1.DataSource = dt
    End Using

    Note que asigno los campos que retorna la consulta (ID y Nombre) a las propiedades ValueMember y DisplayMember respectivamente.

    Note también el ámbito que hago de la conexión, es algo que le platicaba en un post anterior. 

    martes, 21 de junio de 2016 19:15
  • Hola, si e realizado eso pero esta vez los valores los quiero agregar manualmente. Estos no provienen de ningpun orígen de datos
    miércoles, 22 de junio de 2016 2:55
  • Hola, si e realizado eso pero esta vez los valores los quiero agregar manualmente. Estos no provienen de ningpun orígen de datos
    miércoles, 22 de junio de 2016 2:55
  • Hola, si e realizado eso pero esta vez los valores los quiero agregar manualmente. Estos no provienen de ningpun orígen de datos

    Hola Gspindola,

    Pero puedes usar una Lista o crear un DataTable con datos creados manualmente, no es necesario que provenga de un origen de datos.

    Ya sabes que datos vas a agregar? Para que crees una clase con esos atributos.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 22 de junio de 2016 3:00
  • No se puede solamente agregando el .Text y el .Value ?

    Solo quiero mostrar en el text un nombre y en el value un numero sin enlazarlo a datos

    miércoles, 22 de junio de 2016 15:41
  • Gspindola,

    La propiedad DataSource obtiene un origen de datos y quizá el término es lo que confunde: un origen de datos no tiene que ser necesariamente una base de datos, un origen o fuente de datos es cualquier contenedor que proporcione una estructura de datos, en tu caso, sólo quieres pasar un nombre y un identificador, entonces podríamos envolverlo dentro de una estructura que permita la propiedad DataSource.

    Note lo siguiente:

    Private Sub btnCargarData_Click(sender As Object, e As EventArgs)
    
    	Dim data = New () {New With { _
    		Key .ID = 1, _
    		Key .Nombre = "Juan" _
    	}}
    
    	comboBox1.ValueMember = "ID"
    	comboBox1.DisplayMember = "Nombre"
    	comboBox1.DataSource = data
    
    	comboBox1.SelectedValue = 1
    
    	MessageBox.Show(String.Format("ID: {0} Nombre: {1}", comboBox1.SelectedValue, comboBox1.Text))
    End Sub


    Las dos últimas instrucciones permiten seleccionar el único elemento y mostrar el valor y el texto descriptivo.
    miércoles, 22 de junio de 2016 16:16
  • Hola Gspindola

    Gracias por consultar los foros, puedes intentar con esto, es un ejemplo increíblemente simple pero te permite establecer los valores como lo has mencionado. Pruébalo, espero sea de utilidad, estoy atento a tus comentarios.

     private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                string servidor = "192.168.0.1" ;
                string comboBoxItem = comboBox1.SelectedItem.ToString();
                comboBoxItem = servidor;
                textBox1.Text = comboBoxItem; // El textbox te permite verificar el valor enviado desde el ítem 
            }

    Saludos
    José
    __________________________________________________________________________________________
    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, 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.



    • Propuesto como respuesta José De Alva miércoles, 22 de junio de 2016 22:02
    • Editado José De Alva miércoles, 22 de junio de 2016 22:03
    miércoles, 22 de junio de 2016 22:02