none
¿Como leer el valor seleccionado de ListBox o Checklistbox en C#?

    Question

  • HOla buenos dias a todos, sinceramente creo que mi pregunta es super tonta, pero resulta que no e conseguido la forma de leer el valor seleccionado de un ListBox, cuando trabajaba en Visual Basic.net
    Solo ponia TextBox1.Tex=Listbox1.SelectedItem y listo

    Pero en C# e intentado eso y nada tambien TextBox1.Tex=Listbox1.SelectedItem.ToString();  Y lo que me muestra es "System.Data.DataRowView".
     o un ejemplo que consegui en internet que era

    string text = "";
    foreach (var item in listBox1.SelectedItems)
    {
    text += item.ToString() +
    " ";
    }
    textBox1.Text = text;

    Cuando trabajo con base de dato para mostrar los registros eun ListBox y me pasa esto aplico una funcion llamada DisplayMember al registro y listo pero aqui no se como... Si hay algun "Leandro" que me pueda ayudar xD...
    Ah por cierto tengo una duda, una pregunta la cual realice ayer y no estaba concluida se encuentra bloqueada, esto puede ser por que? e preguntado mucho? xD

    Thursday, October 22, 2009 2:20 PM

Answers

  • Hola, aca te aclaro tu duda:

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
      textBox1.Text = listBox1.Text;
    }

    agrega un textBox, un listBox y al listBox agregale algunos items, despues si le haces doble clic al listBox se abre el evento SelectedIndexChanged que es el codigo que te puse anteriormente, escribes el codigo que te pase y ahi lo pruebas. Le haces un clic a un elemento dentro del ListBox y ese elemento se muestra en la caja de texto. 

    Espero que te haya servido. NO olvides de votar como util la respuesta para saber si te ha servido. Saludos



    horacio
    • Marked as answer by AdyIr Thursday, October 22, 2009 3:11 PM
    Thursday, October 22, 2009 2:39 PM

All replies

  • Hola, aca te aclaro tu duda:

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
      textBox1.Text = listBox1.Text;
    }

    agrega un textBox, un listBox y al listBox agregale algunos items, despues si le haces doble clic al listBox se abre el evento SelectedIndexChanged que es el codigo que te puse anteriormente, escribes el codigo que te pase y ahi lo pruebas. Le haces un clic a un elemento dentro del ListBox y ese elemento se muestra en la caja de texto. 

    Espero que te haya servido. NO olvides de votar como util la respuesta para saber si te ha servido. Saludos



    horacio
    • Marked as answer by AdyIr Thursday, October 22, 2009 3:11 PM
    Thursday, October 22, 2009 2:39 PM
  • Hola, aca te aclaro tu duda:

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
      textBox1.Text = listBox1.Text;
    }

    agrega un textBox, un listBox y al listBox agregale algunos items, despues si le haces doble clic al listBox se abre el evento SelectedIndexChanged que es el codigo que te puse anteriormente, escribes el codigo que te pase y ahi lo pruebas. Le haces un clic a un elemento dentro del ListBox y ese elemento se muestra en la caja de texto. 

    Espero que te haya servido. NO olvides de votar como util la respuesta para saber si te ha servido. Saludos



    horacio

    Wow, realmente que tonto soy :S me imagino que hasta flojera les dio responderme xD... Una simple propiedad Text xD...
    Thursday, October 22, 2009 3:08 PM
  • Amigo eso sucede porque esta ligado a una fuente de dato, para solucionar esto puedes acceder al .Text pero este solo te da el que está siendo mostrado, en caso que quieras recorrer los datos te recomiendo hacerlo directamente sobre la fuente de los datos o hacer la conversion:


    string text = "" ;
    foreach (DataRowView item in listBox1.SelectedItems)
    {
         text += item[nombre_columna].ToString() +
    " " ;
    }
    textBox1.Text = text;


    Si no funciona:

    string text = "" ;
    Datarowview fila;
    foreach (Object item in listBox1.SelectedItems)
    {
        fila=(
    Datarowview ) item;
         text += fila[nombre_columna].ToString() +
    " " ;
    }
    textBox1.Text = text;


    Suerte.
    Thursday, October 22, 2009 3:35 PM
  • Amigo eso sucede porque esta ligado a una fuente de dato, para solucionar esto puedes acceder al .Text pero este solo te da el que está siendo mostrado, en caso que quieras recorrer los datos te recomiendo hacerlo directamente sobre la fuente de los datos o hacer la conversion:


    string text = "" ;
    foreach (DataRowView item in listBox1.SelectedItems)
    {
         text += item[nombre_columna].ToString() +
    " " ;
    }
    textBox1.Text = text;


    Si no funciona:

    string text = "" ;
    Datarowview fila;
    foreach (Object item in listBox1.SelectedItems)
    {
        fila=(
    Datarowview ) item;
         text += fila[nombre_columna].ToString() +
    " " ;
    }
    textBox1.Text = text;


    Suerte.

    Muchas gracias Edgar... Dejame intentar...
    Thursday, October 22, 2009 6:05 PM
  • lo unico que tiens que hacer es convertirlo a string

    es decir:

    string cadena=listbox1.selecteditem().ToString();
    Listo!!!

    lo puedes hacer asignandole directamente el valor a uin textbox o como tu quieras.

    DavidDDR david_fer1@hotmail.com
    Wednesday, October 28, 2009 8:58 PM