none
ComboBox RRS feed

  • Pergunta

  •  

    Ola !

     

     estou com um problema em minha combobox, é o seguinte tenho a Combo Estado onde se carrega os estados do País etc... acontece que este combo quando executo o Form ele vem preenchido quando na verdade queria q ele fosse preenchido somente quando o estado fosse selecionado, como faco para que ele carregue vazio? e seja preenchido somente apos a selecao:????  desde jah agradeço a ajuda....!

    quarta-feira, 3 de setembro de 2008 19:44

Respostas

  • Fabio, se você efetuar uma atribuição dentro do if que não seja de valores booleanos vai resultar num erro, pois não há conversão implícita de int para bool no exemplo que você mostrou. C# não é como C, onde não existe o conceito de variável booleana e o "verdadeiro" é assumido como qualquer coisa diferente de 0 e o "falso" como qualquer coisa igual a 0.

     

    Só não entendi porque você quis fazer isso. A idéia de "esvaziar" o combo é atribuir à propriedade SelectedIndex o -1 após o carregamento dos dados.

     

    Teríamos algo como:

     

            // carregamento/atualização do combo

            ...

            this.comboBox.SelectedIndex = -1;

            ...

     

    Este controle seria efetuado fora do handler do evento SelectedIndexChanged que você postou.

     

    Espero ter esclarecido sua dúvida. Caso contrário, continue postando e eu tentarei explicar de outra forma! Wink

    quinta-feira, 4 de setembro de 2008 13:25
  • Nosso amigo ai tem razao.

     

    - Primeiro vc nao pode colocar o codigo dentro do selecteditem

    - Vc vai colocar este codigo possivelmente dentro do form_load e é simples, é apenas essa linha q nosso amigo ai te passou.

     

    Obs: independente se o controle combobox tem ou nao tem itens, se vc passar o -1 ele vai simplesmente limpar o campo selecionado. Provavelmente vc esta usando o combo como dropdownlist.

    Se fosse outro formato diferente de dropdownlist vc poderia usar simplesmente combo.text = "", mas neste caso teria q ser o selectedindex = -1

     

    E so para reforçar, vc nao precisa fazer verificaçoes do -1, simplesmente passe esse valor. E se quiser pegar o valor do combo atual apenas verifique sua propriedade Text, se tiver em branco eh pq nada esta selecionado.

     

    Espero ter reforçado a ajuda do nosso outro amigo.

     

    Atenciosamente,

    Alexsandro Nunes

     

    quinta-feira, 4 de setembro de 2008 14:13

Todas as Respostas

  • Olá, Fabio. Confesso que não tenho certeza se entendi sua dúvida.

     

    Eu acredito que você quer que a caixa de exibição do item selecionado venha vazio até que o usuário escolha uma opção dentre as disponíveis.

     

    Basta fazer isto aqui após o carregamento:

     

     

    Code Snippet

    comboBox.SelectedIndex = -1;

     

     

     

    Espero ter ajudado!

    quinta-feira, 4 de setembro de 2008 11:32
  •   Fernando

     

      Sim vc "pegou" o meu problema ! rs rs quanto a sua solucao eu testei e ele deu este erro "Cannot implicity convert type 'int' to 'bool' " tentei com dois sinais == e ele nao funciona tb... vou postar o codigo do combo...

     

    Code Snippet

     

    private void cboEstado_SelectedIndexChanged(object sender, EventArgs e) {

     

    if (this.cboEstado.SelectedIndex != -1) {

    FiltroMunicipio filtro = new FiltroMunicipio();

    filtro.codigoEstado = ((Estado)this.cboEstado.SelectedItem).codigo;

    this.popularCombosPorCondicao(filtro, COMBO_MUNICIPIO);

    }

    }

     

     

    obrigado pela ajuda!
    quinta-feira, 4 de setembro de 2008 12:26
  • Fabio, esta mensagem de erro é disparada para qual linha da sua aplicação? Aparentemente não tem nada de errado com o código que você postou.

    quinta-feira, 4 de setembro de 2008 12:53
  •  Fernando

     

       é nessa linha >>>   if(this.cboEstado.SelectedIndex != -1), quando mudo o sinal para um simples = ele da essa mensagem de erro citada acima, este metodo em si esta funcionando, soh nao estou conseguindo fazer com q a combo Estado fique vazia quando eu inicio a aplicação... no SelectedIndex percebi q ele jah esta recebendo o valor 0 ou seja ele esta selecionando a primeira linha jah e nao a linha vazia q seria a -1....

    quinta-feira, 4 de setembro de 2008 13:03
  • Fabio, se você efetuar uma atribuição dentro do if que não seja de valores booleanos vai resultar num erro, pois não há conversão implícita de int para bool no exemplo que você mostrou. C# não é como C, onde não existe o conceito de variável booleana e o "verdadeiro" é assumido como qualquer coisa diferente de 0 e o "falso" como qualquer coisa igual a 0.

     

    Só não entendi porque você quis fazer isso. A idéia de "esvaziar" o combo é atribuir à propriedade SelectedIndex o -1 após o carregamento dos dados.

     

    Teríamos algo como:

     

            // carregamento/atualização do combo

            ...

            this.comboBox.SelectedIndex = -1;

            ...

     

    Este controle seria efetuado fora do handler do evento SelectedIndexChanged que você postou.

     

    Espero ter esclarecido sua dúvida. Caso contrário, continue postando e eu tentarei explicar de outra forma! Wink

    quinta-feira, 4 de setembro de 2008 13:25
  • Nosso amigo ai tem razao.

     

    - Primeiro vc nao pode colocar o codigo dentro do selecteditem

    - Vc vai colocar este codigo possivelmente dentro do form_load e é simples, é apenas essa linha q nosso amigo ai te passou.

     

    Obs: independente se o controle combobox tem ou nao tem itens, se vc passar o -1 ele vai simplesmente limpar o campo selecionado. Provavelmente vc esta usando o combo como dropdownlist.

    Se fosse outro formato diferente de dropdownlist vc poderia usar simplesmente combo.text = "", mas neste caso teria q ser o selectedindex = -1

     

    E so para reforçar, vc nao precisa fazer verificaçoes do -1, simplesmente passe esse valor. E se quiser pegar o valor do combo atual apenas verifique sua propriedade Text, se tiver em branco eh pq nada esta selecionado.

     

    Espero ter reforçado a ajuda do nosso outro amigo.

     

    Atenciosamente,

    Alexsandro Nunes

     

    quinta-feira, 4 de setembro de 2008 14:13
  • Fernando e Alexsandro

     

     obrigado por terem respondido a minhas duvidas e essa questao foi resolvida, coloquei o selectedindex = -1, apos ele carregar o datasource aew funcionou, estava colocando ele antes disso portanto nao funcionava!!! obrigado!

    quinta-feira, 4 de setembro de 2008 16:02