none
Listbox c# ... RRS feed

  • Pergunta

  • Olha eu aqui novamente pessoal!

    Tenho um ListBox que recebe valores de um primeiro ListBox, porem quero utilizar os valores do segundo listbox como parametros de uma pesquisa que preciso realizar em um select no meu banco... mas nao sei como faço pra usar as propriedades de valor do listbox, se meu listbox tem 5 linha como faço pra pega-las e passa-lá para alimentar os parametros da minha select?

     

    Exemplo:

    tipo

    bicicleta = 02 rodas ----linha 01 listbox

    moto = 02 rodas--------linha 02 listbox

    carro = 04 rodas--------linha 03 listbox

    caminhao = 06 rodas---linha 04 listbox

    onibus = 06 rodas------linha 05 listbox

    ______________________________

    select * from veiculos where @rodas (esse @ sai o valor do meu listbox)

    ---------------------------------------------------

    estou usando: c# , windows form, sqlserver 2005.

     

    se puderem me ajudar agradeço

     

    atenciosamente,

    Tiago

    quarta-feira, 1 de setembro de 2010 18:14

Respostas

  • segue texto do link:

    Você pode preencher o listbox com uma classe auxiliar como o KeyValuePair:

    listBox1.Items.Add(new KeyValuePair<int, string>(123, "ricardoalves.me"));
    
    listBox1.ValueMember = "Key";
    
    listBox1.DisplayMember = "Value"; 
    
    

     

    Desta forma você coloca no listbox uma chave e um valor... quando você acabar de popula o listbox você defini o que vai aparacerer para o usuário, neste caso o DisplayValue é igual o 'Value' (ricardoalves.me)...

     

     

       foreach (KeyValuePair<int, string> item in listBox1.Items)
       {
        int key = item.Key;
        string valor = item.Value;
       }
    

     

     

     agora, vou tentar explicar...

     

    no listbox, vc pode usar o valuemenber o valor das rodas

    já o displaymember vc pode usar para mostrar o texto completo.

     

    o KeyValuePair é uma estrutura existente no framework do .net, ou (como alguns costumam chamar de generics) ela fica no System.Collections.Generic.

    para ficar mais claro, tentarei criar algo...

     

    tente algo parecido com isso:

    listBox1.Items.Add(new KeyValuePair<int, string>(2, "bicicleta"));
    listBox1.Items.Add(new KeyValuePair<int, string>(2, "moto"));
    listBox1.Items.Add(new KeyValuePair<int, string>(4, "carro"));
    listBox1.Items.Add(new KeyValuePair<int, string>(4, "caminhão"));
    listBox1.Items.Add(new KeyValuePair<int, string>(6, "onibus"));
    
    listBox1.ValueMember = "Key";
    
    listBox1.DisplayMember = "Value"; 
    
    
       foreach (KeyValuePair<int, string> item in listBox1.Items)
       {
        int key = item.Key;
        string valor = item.Value;
        MessageBox.Show( "Rodas: " + key.ToString() + " veículo: " + valor );
       }
    

    quarta-feira, 1 de setembro de 2010 20:36

Todas as Respostas

  • vc pode usar o valuemenber e o displaymenber

     

    tem uma pergunta similar à sua ( com resposta ) aqui: http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/3e454586-35fe-4056-8894-15559b447c77

    quarta-feira, 1 de setembro de 2010 18:36
  • amigo nao consegui assimilar...como funciona a sintaxe
    quarta-feira, 1 de setembro de 2010 19:34
  • segue texto do link:

    Você pode preencher o listbox com uma classe auxiliar como o KeyValuePair:

    listBox1.Items.Add(new KeyValuePair<int, string>(123, "ricardoalves.me"));
    
    listBox1.ValueMember = "Key";
    
    listBox1.DisplayMember = "Value"; 
    
    

     

    Desta forma você coloca no listbox uma chave e um valor... quando você acabar de popula o listbox você defini o que vai aparacerer para o usuário, neste caso o DisplayValue é igual o 'Value' (ricardoalves.me)...

     

     

       foreach (KeyValuePair<int, string> item in listBox1.Items)
       {
        int key = item.Key;
        string valor = item.Value;
       }
    

     

     

     agora, vou tentar explicar...

     

    no listbox, vc pode usar o valuemenber o valor das rodas

    já o displaymember vc pode usar para mostrar o texto completo.

     

    o KeyValuePair é uma estrutura existente no framework do .net, ou (como alguns costumam chamar de generics) ela fica no System.Collections.Generic.

    para ficar mais claro, tentarei criar algo...

     

    tente algo parecido com isso:

    listBox1.Items.Add(new KeyValuePair<int, string>(2, "bicicleta"));
    listBox1.Items.Add(new KeyValuePair<int, string>(2, "moto"));
    listBox1.Items.Add(new KeyValuePair<int, string>(4, "carro"));
    listBox1.Items.Add(new KeyValuePair<int, string>(4, "caminhão"));
    listBox1.Items.Add(new KeyValuePair<int, string>(6, "onibus"));
    
    listBox1.ValueMember = "Key";
    
    listBox1.DisplayMember = "Value"; 
    
    
       foreach (KeyValuePair<int, string> item in listBox1.Items)
       {
        int key = item.Key;
        string valor = item.Value;
        MessageBox.Show( "Rodas: " + key.ToString() + " veículo: " + valor );
       }
    

    quarta-feira, 1 de setembro de 2010 20:36
  • ok! agora entendi!

    vou tentar aqui e assim que tiver o resultado te aviso!!!

    mas muito obrigado por enquanto!

    atenciosamente

    tiago

    quinta-feira, 2 de setembro de 2010 12:12