• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Namur

Leigo com problema: Count dinâmico de items em combobox.

5 mensagens neste tópico

Em primeiro lugar, olá a todos.

Não tenho experiência em C#, nem em qualquer outra linguagem, tirando o pouco que aprendi nos últimos dias, enquanto fui fazendo uma pequena aplicação (C# VS2005).

Tirando um pequeno problema, a App está pronta. Felizmente não tive de escrever muito código, o que foi óptimo porque a Sintaxe é obviamente um problema. A experiência tem sido muito positiva, e já me decidi a aprender um pouco mais de C# .

Em relação ao problema :

Tenho uma ComboBox que vai buscar os items a uma base de dados. Através de acções que o utilizador vai efectuando na Form, o nº de items da ComboBox vai variando.

Preciso de mostrar (numa label ou textbox,...) o nº correcto de items na combobox, á medida que este se vai alterando.

Com um botão e uma MessageBox consegui lá chegar,

int u = (ComboBox1.Items.Count);

            string s = u.ToString();

            MessageBox.Show(s);

mas isto não serve, porque a aplicação precisa que  o nº de items na Combobox seja apresentado sem intervenção do utilizador.

Se alguém me puder ajudar, agradeço desde já.

Obrigado a todos.

Namur.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não tenho muita certeza do que estou a dizer mas...

Penso que podes usar os eventos ControlAdded e ControlRemoved. Se não me engano estes eventos são despoletados sempre que se adicionam e removem items da ComboBox.

Crias uma Label ou TextBox e dentro dos métodos que associares aos eventos ControlAdded e ControlRemoved mudas o conteúdo dela.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Saco,

Obrigado pela dica. Ainda não posso dizer se a utilização dos eventos que mencionas resultará, porque não sei como escrever o código. De momento estou a dar uma vista de olhos sobre a utilização de ControlAdded e ControlRemoved, para compreender como os utilizar. Fiquei com a ideia que servem para adicionar/retirar elementos de uma Form, mas para saber se os posso aplicar a este caso, tenho de aprender um pouco mais.

De qualquer modo, quando conseguir resolver isto, eu digo.

Namur

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma pergunta:

O número de elementos na lista é alterado durante a execução ou depois da inicialização mantém-se constante?

É que se for constante basta depois de adicionares os elementos todos fazer

label1.Text = ComboBox1.Items.Count.ToString();

Mesmo que não seja constante, podes usar esta linha de cada vez que adicionas um elemento.

Já agora entretanto fui testar e ControlAdded e ControlRemoved não servem para o que tu queres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Saco,

Em primeiro lugar peço desculpa por ter demorado a responder.

Agradeço-te imenso teres testado o ControAdded / ControlRemoved para ultrapassar o problema. Li bastante sobre a utilização destes eventos logo após a tua sugestão, e também cheguei à conclusão que não deveriam de dar neste caso.

Em relação à tua pergunta, o nº de elementos não é constante após a inicialização. O nº de elementos varia, conforme o utilizador vai 'clickando' nos botões na Form.

...

label11.Text = ComboBox1.Items.Count.ToString ();

Vou tentar usar a linha que sugeres. Teria  de usar o código em todos os elementos da Form que por acção do utilizador sejam passíveis de alterar o nº de items da ComboBox. Se resultar será muito bom, porque é uma solução que seria simples de introduzir.

Muito Obrigado por mais esta dica.

Namur

 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora