Alguem poderia me ajudar com C#?

Minha duvida é a seguinte:

Como pegar o valor de uma CheckBox?

o problema é que eu tenho q criar em tempo de execução.

então não sei como pegar o valor dela.

na minha variavel “valor” ele sempre pega o primeiro valor do comboBox, ou seja, 1,2,3

e ele tinha q pegar o valor igual ao que o cont mostra, q é de 1 á 100.

estou usando o Visual Studio 2008.

Grata

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Prova
{
    public partial class Formulario : Form
    {
        private String nome;

        public Formulario()
        {
            InitializeComponent();
        }

        private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Quando eu escolho uma das opcao abaixo ele tem q criar 100 CheckBox.
            //Se eu escolho o comboBox 1, ele tem q começar do 1 ate 100
            //Se eu escolho o comboBox 2, ele tem q começar do 2 ate 101
            //Se eu escolho o comboBox 3, ele tem q começar do 3 ate 102
            int cont1 = 100;
            int cont2 = 101;
            int cont3 = 102;
            CheckBox cb = new CheckBox();
            if (comboBox.SelectedItem.ToString() == "1")
            {
                for (int i = 0; i < 100; i++)
                {
                    checkedListBox.Items.Insert(0, cont1);
                    cont1--;
                    GetItemText(0);           
                }
            }
            if (comboBox.SelectedItem.ToString() == "2")
            {
                for (int i = 0; i < 100; i++)
                {
                    checkedListBox.Items.Insert(0, cont2);
                    cont2--;
                    GetItemText(0);           
                }
            }
            if (comboBox.SelectedItem.ToString() == "3")
            {
                for (int i = 0; i < 100; i++)
                {
                    checkedListBox.Items.Insert(0, cont3);
                    cont3--;
                    GetItemText(0);           
                }
            }
        }

        private void GetItemText(int i)
        {
            string valor = checkedListBox.Items[i].ToString();
            label.Text = "O valor selecionado é: " + valor;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Cálculo da média");
        }
    }
}

Você deve pegar todos os componentes do seu form e verificar se eles são checkbox e se estão marcados

em java seria algo do tipo

Components c[] = meuForm.getComponents();

for (Component a:c){
     if(a instanceof JCheckBox){
           //fazer outras verificações e conversões
     }
}

não tenho certeza da sintaxe, acho que é o que você queria

Acho q vc postou no tópico errado, existe um tópico outras linguagens

Ele sempre vai pegar o primeiro valor porque em toda chamada do método GetItemText você está passando 0 como parâmetro, o que sempre irá fazer com que ele pegue o primeiro valor do checkbox.
E outra coisa, quando você está inserindo no CheckedListBox, o primeiro parâmetro do método Insert é o índice do valor que você está salvando, ou seja, você está salvando todos os valores na primeira posição(0). Mesmo que você pegasse outra posição no método GetItemText não iria retornar uma Exception, pois não haveria valor para acessar.

Tente assim:

# private void comboBox_SelectedIndexChanged(object sender, EventArgs e)  
#         {  
#             //Quando eu escolho uma das opcao abaixo ele tem q criar 100 CheckBox.  
#             //Se eu escolho o comboBox 1, ele tem q começar do 1 ate 100  
#             //Se eu escolho o comboBox 2, ele tem q começar do 2 ate 101  
#             //Se eu escolho o comboBox 3, ele tem q começar do 3 ate 102  
#             int cont1 = 100;  
#             int cont2 = 101;  
#             int cont3 = 102;  
#             CheckBox cb = new CheckBox();  
#             if (comboBox.SelectedItem.ToString() == "1")  
#             {  
#                 for (int i = 0; i < 100; i++)  
#                 {
#                     //Mudando o valor do indice, que irá acompanhar a variável i, que começa no 0   
#                     checkedListBox.Items.Insert(i, cont1);  
#                     cont1--;  
#                     //mesma coisa para o GetItemText, que irá acessar o valor naquela posição
#                     GetItemText(i);             
#                 }  
#             }  
#             if (comboBox.SelectedItem.ToString() == "2")  
#             {  
#                 for (int i = 0; i < 100; i++)  
#                 {
#                     //Mudando o valor do indice, que irá acompanhar a variável i, que começa no 0  
#                     checkedListBox.Items.Insert(i, cont2);  
#                     cont2--;  
#                     //mesma coisa para o GetItemText, que irá acessar o valor naquela posição
#                     GetItemText(i);             
#                 }  
#             }  
#             if (comboBox.SelectedItem.ToString() == "3")  
#             {  
#                 for (int i = 0; i < 100; i++)  
#                 {  
#                     //Mudando o valor do indice, que irá acompanhar a variável i, que começa no 0
#                     checkedListBox.Items.Insert(0, cont3);  
#                     cont3--;  
#                     //mesma coisa para o GetItemText, que irá acessar o valor naquela posição
#                     GetItemText(i);             
#                 }  
#             }  
#         }  
#   
#         private void GetItemText(int i)  
#         {  
#             string valor = checkedListBox.Items[i].ToString();  
#             label.Text = "O valor selecionado é: " + valor;  
#         }  

Veja se assim funciona do jeito que você precisa :wink:
Ah, e lembrando que dessa forma os valores irão ser armazenados “ao contrário”, já que sua variável começa no último valor para ir diminuindo para os primeiros. Se quiser que fique ao contrário simplesmente mude o valor das váriáveis para o minimo(1) e mude os “conts” para ++ ao invés de --.

Deu certo sim.

Muito obrigada pela ajuda.

:slight_smile: